手当たり次第に書くんだ

飽きっぽいのは本能

Kubernetes kubeconfig の管理 – 複数クラスタと context を整理する

Kubernetes 環境で複数のクラスタを管理する場合、kubeconfig をどのように扱うかが重要になります。単一クラスタだけなら意識する場面は少ないですが、複数クラスタを扱い始めると、context 名、cluster 名、user 名の設計が運用性に直結します。

この記事の位置づけ

この記事は、複数クラスタや複数 context を扱うための kubeconfig 管理記事です。kubectl がどのクラスタに対して操作しているのかを明確にし、誤操作を避けるための前提を整理します。

管理方法は大きく 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-contexts

context 名を整理する

マージした 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 を整理する

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る