Kubernetesの認証情報(Context)

kubeconfig

kubectlが、k8s Masterと通信する際には、接続先サーバのの認証情報を「~/.kube/confg」に記載する必要がある。

kubeconfigで具体的な設定を行う部分は、clusters、users、contextsの三種類あり、配列型で設定する。 clustersには接続先クラスタの情報を、usersには認証情報を定義する。contextsはclusterとuserのペアとnamespaceを指定したものを定義する。

apiVersion: v1
kind: Config
clusters: # 接続先クラスタ情報
- cluster:
    certificate-authority: /Users/USER/.minikube/ca.crt
    extensions:
    - extension:
        last-update: Thu, 01 Sep 2022 09:39:29 JST
        provider: minikube.sigs.k8s.io
        version: v1.26.1
      name: cluster_info
    server: https://127.0.0.1:55537
  name: minikube
users: # 認証情報
- name: minikube
  user:
    client-certificate: /Users/USER/.minikube/profiles/minikube/client.crt
    client-key: /Users/USER/.minikube/profiles/minikube/client.key
contexts: #接続先と認証情報の組み合わせ
- context:
    cluster: minikube
    extensions:
    - extension:
        last-update: Thu, 01 Sep 2022 09:39:29 JST
        provider: minikube.sigs.k8s.io
        version: v1.26.1
      name: context_info
    namespace: default
    user: minikube
  name: minikube
current-context: docker-desktop
preferences: {}

kubeconfigの操作

contextを切り替えることで複数の環境を複数の権限で扱えるようになる。

contextの一覧表示

$ kubectl config get-contexts

contextの切り替え

$ kubectl config use-context {コンテキスト名}

現在のcontextの表示

$ kubectl config current-context

参考

Tags: