Kubernetes 環境で複数のクラスタを管理する場合、kubeconfig をどのように扱うかが重要になります。単一クラスタだけなら意識する場面は少ないですが、複数クラスタを扱い始めると、context 名、cluster 名、user 名の設計が運用性に直結します。
この記事の位置づけ
この記事は、複数クラスタや複数 context を扱うための kubeconfig 管理記事です。kubectl がどのクラスタに対して操作しているのかを明確にし、誤操作を避けるための前提を整理します。
次に読む記事
参考
書籍
書籍
参考書籍
Kubernetes完全ガイド 第2版
Kubernetes の仕組み、リソース、ネットワーク、運用観点を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
管理方法は大きく 2 つ
export KUBECONFIG=<kubeconfig>で対象ファイルを切り替える。- 複数の kubeconfig をマージし、
${HOME}/.kube/configの context で切り替える。
KUBECONFIG で切り替える
export KUBECONFIG=${HOME}/.kube/k8s-cluster-01
kubectl config current-context
kubectl get nodeこの方法は簡単ですが、シェルごとに環境変数の状態が変わるため、今どのクラスタを見ているのかを確認する習慣が必要です。
kubeconfig をマージする
export KUBECONFIG=${HOME}/.kube/k8s-cluster-01:${HOME}/.kube/k8s-cluster-02
kubectl config view --merge --flatten > ${HOME}/.kube/config
export KUBECONFIG=${HOME}/.kube/config
kubectl config get-contextscontext 名を整理する
マージした kubeconfig で重要なのは、context 名が一目で分かることです。クラスタ名、接続先、用途、環境が分かる名前にしておくと、誤操作を減らせます。
kubectl config rename-context kubernetes-admin@kubernetes k8s-base-g01-cluster.int
kubectl config use-context k8s-base-g01-cluster.int
kubectl config current-context確認コマンド
kubectl config get-contexts
kubectl config view --minify
kubectl cluster-info
kubectl get namespace扱いに注意する情報
- kubeconfig にはクライアント証明書やトークンなどの認証情報が含まれる場合がある。
- Git リポジトリや共有フォルダに不用意に置かない。
- 複数人で使う場合は、個人ごとの認証情報と権限を分ける。
- context 名だけで本番・検証を誤認しないようにする。
まとめ
kubeconfig は Kubernetes を操作するための接続情報であり、単なる設定ファイルではありません。複数クラスタを扱う場合は、マージするか切り替えるかだけでなく、context 名、認証情報、権限、保管場所まで含めて設計する必要があります。
Kubernetes kubeconfig の管理 – 複数クラスタと context を整理する



