🔖

k3sにPostmanからアクセスする

2021/05/02に公開

TL;DR

  • k3d kubeconfig で接続用の設定を出力する
  • クライアント証明書を base64 デコードする
  • サーバー証明書の検証を無効化する

How to

k3d kubeconfig で接続用の設定を出力する

k3d kubeconfig get で接続先を確認。

k3d kubeconfig get --all

---
apiVersion: v1
clusters:
- cluster:
    certificate-authority-data:
    # 省略
    server: https://0.0.0.0:52224
  name: k3d-k3s-default

すでに接続先を設定済みの場合、 cat ~/.kube/config でも OK。

クライアント証明書を base64 デコードする

k3d kubeconfig get --all | grep client-key-data | awk '{print $2}' | base64 -d > client-key-data
k3d kubeconfig get --all | grep client-certificate-data | awk '{print $2}' | base64 -d > client-certificate-data

デコードしたクライアント証明書を Postman に設定(ちなみに Insomnia でも可能でした。)

image.png

サーバー証明書の検証を無効化する

k3s の SSL 証明書は k3s 自身によるオレオレ証明書のため、検証ができません。

image.png

(逆になんで kubectl はリクエストに成功しているんだろう...?)

そのままリクエストすると失敗するので、SSL 証明書の検証を無効化してください。

補足

クラスターを削除して再作成すると、接続先ポートとクライアント証明書が新たに設定されます。ご注意ください。

GitHubで編集を提案

Discussion