【k8s】Kubernetes ~ 基本編 / kubeconfigファイル ~

■ はじめに

https://dk521123.hatenablog.com/entry/2022/01/12/110555

で、kubectl configコマンドをやった。
が、トラブルシュートなどでも使えそうだし、
かなりボリューミーなので、こちらでまとめる。

目次

【1】kubeconfigファイル
 1)ファイル構成
 2)設定ファイルのパスについて
【2】kubectl configコマンド
【3】データを取得するkubectl configコマンド
 1)kubectl config view
 2)kubectl config get-contexts
 3)kubectl config current-context
【4】データを削除するkubectl configコマンド
 1)kubectl config delete-cluster <ARN>
 2)kubectl config  delete-context <ARN>
 3)kubectl config  delete-user <ARN>
 4)kubectl config unset <TargetOjbect>

【1】kubeconfigファイル

* クラスタへの接続情報が記載されているファイル

深堀りすると...

kubectl が Kubernetes Master と通信する際に
接続先サーバ情報や認証情報などが必要なのだが
その情報を保持しているファイルが、「kubeconfigファイル」である

1)ファイル構成

* ファイルの主な構成は、以下の3通り+α。

[1] clusters

* 接続先クラスタ情報(Kubernetesクラスタ)

[2] users

* 接続するユーザ。
* 認証情報を定義

[3] contexts

* 「[1] cluster」と「[2] user」の組み合わせ

+α:current-context

* 現在使用している context

$ kubectl config view

apiVersion: v1
# [1] clusters
clusters:
- cluster: # 接続先クラスタ
    certificate-authority-data: DATA+OMITTED
    server: https://kubernetes.docker.internal:6443
  name: docker-desktop
# [3] contexts
contexts: # 接続先と認証情報の組み合わせ
- context:
    cluster: docker-desktop
    user: docker-desktop
  name: docker-desktop
- context:
    cluster: docker-desktop
    user: docker-desktop
  name: docker-for-desktop
# +α:current-context
current-context: docker-desktop # 現在使用している context
kind: Config
preferences: {}
# [2] users
users: # 認証情報
- name: docker-desktop
  user:
    client-certificate-data: REDACTED
    client-key-data: REDACTED

2)設定ファイルのパスについて

https://qiita.com/yuya_takeyama/items/74d884527927e2139c5e

が詳しく書いてある。感謝。

デフォルト

* 「<HOME>/.kube/config」

環境変数「KUBECONFIG」

# 「~/.kube/kubconfig2」に変更
KUBECONFIG=~/.kube/kubconfig2 

補足:その他の指定

# --kubeconfigフラグで個別に指定も可能。
kubectl --kubeconfig=~/.kube/kubconfig3 config get-contexts

【2】kubectl configコマンド

* 困ったら、「kubectl config -h」でヘルプを読むのが吉。

構文

kubectl config SUBCOMMAND [flags]

【3】データを取得するkubectl configコマンド

1)kubectl config view

* kubeconfigファイルの設定を表示

コマンド例

$ kubectl config view
apiVersion: v1
clusters:
- cluster:
    certificate-authority: C:\Users\Daisuke\.minikube\ca.crt
    server: https://xxx.xxx.xxx.xxxx
  name: arn.aws.eks:us-west-2:xxxxxx
contexts:
- context:
    cluster: arn.aws.eks:us-west-2:xxxxxx
    namespace: default
    user: arn.aws.eks:us-west-2:xxxxxx
  name: arn.aws.eks:us-west-2:xxxxxx
current-context: arn.aws.eks:us-west-2:xxxxxx
kind: Config
preferences: {}
users:
- name: arn.aws.eks:us-west-2:xxxxxx
  user:
    client-certificate: xxxx
    client-key: xxxxx

2)kubectl config get-contexts

* コンテキストのリストを一覧表示

コマンド例

kubectl config get-contexts

3)kubectl config current-context

* 現在のコンテキストを表示

コマンド例

kubectl config current-context

【4】データを削除するkubectl configコマンド

1)kubectl config delete-cluster

* kubeconfigファイル内から特定のクラスタ情報を削除

コマンド例

# kubectl config view で、指定する<ARN>を調べておく
kubectl config delete-cluster arn.aws.eks:us-west-2:xxxxxx

2)kubectl config delete-context

* kubeconfigファイル内から特定のコンテキスト情報を削除

コマンド例

# kubectl config view で、指定する<ARN>を調べておく
kubectl config delete-context arn.aws.eks:us-west-2:xxxxxx

3)kubectl config delete-user

* kubeconfigファイル内から特定のユーザ情報を削除

コマンド例

# kubectl config view で、指定する<ARN>を調べておく
kubectl config delete-user  arn.aws.eks:us-west-2:xxxxxx

4)kubectl config unset

Unsets an individual value in a kubeconfig file
[訳] kubeconfig ファイル内の独自の値を解除する

https://jamesdefabia.github.io/docs/user-guide/kubectl/kubectl_config_unset/

コマンド例

kubectl config unset current-context

参考文献

[Kubernetes入門] kubectlのアクセス先(コンテキスト)を切り替える方法 | クラウド・AWSのIT技術者向けブログ SKYARCH BROADCASTING

関連記事

Kubernetes ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2020/04/27/224624
KubernetesWindows / 環境構築編 ~
https://dk521123.hatenablog.com/entry/2020/05/01/000000
Kubernetes ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2020/05/04/013529
Kubernetes ~ 基本編 / minikube ~
https://dk521123.hatenablog.com/entry/2023/05/07/214515
Kubernetes ~ 基本編 / kubectlコマンド ~
https://dk521123.hatenablog.com/entry/2022/01/12/110555
KubernetesKubernetes Dashboard
https://dk521123.hatenablog.com/entry/2023/05/27/144144
Amazon EKS ~ 基礎知識編 ~
https://dk521123.hatenablog.com/entry/2023/02/23/000000
Amazon EKS ~ 入門編 ~
https://dk521123.hatenablog.com/entry/2023/05/10/220241
学習用クラウドサービス ~ katacoda ~
https://dk521123.hatenablog.com/entry/2021/07/15/211044