このドキュメントは The Kubectl Book の翻訳です。翻訳の GitHub リポジトリはこちら。
--context
フラグによって、ロールアウトする対象のクラスタを指定する--kubeconfig
フラグによって、ロールアウトする対象のクラスタを指定する
複数のクラスタを対象にする
動機
一つのアプリケーションの複数のバリエーションを異なるクラスタにデプロイする必要があるという状況はよくあります。これは別々の kustomization.yaml
のバリエーションを使って、各バリエーションが --context
フラグや --kubeconfig
フラグを使って対象となるクラスタを指定することで、別々のバリエーションを構成することでなされます。
注意: この章の例では、リソース構成を一つのディレクトリに保管し、クラスタ名にマッチするようにします。(つまりディレクトリ名がコンテキスト名になります)
コンテキストを通じたクラスタの指定
kubeconfig ファイルによって複数のコンテキストを指定できます。各コンテキストには異なるクラスタと権限が含まれます。
コンテキストの一覧
kubeconfig ファイルにあるコンテキストを一覧表示します
kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
us-central1-c us-central1-c us-central1-c
* us-east1-c us-east1-c us-east1-c
us-west2-c us-west2-c us-west2-c
コンテキストを表示
現在のコンテキストに関する情報を表示します
kubectl config --kubeconfig=config-demo view --minify
apiVersion: v1
clusters:
- cluster:
certificate-authority: fake-ca-file
server: https://1.2.3.4
name: development
contexts:
- context:
cluster: development
namespace: frontend
user: developer
name: dev-frontend
current-context: dev-frontend
kind: Config
preferences: {}
users:
- name: developer
user:
client-certificate: fake-cert-file
client-key: fake-key-file
コンテキストフラグの指定
kubeconfig コンテキストをコマンドの一部として指定します。
注意: この例では kustomization.yml
がコンテキスト名とマッチするディレクトリにあります。
export CLUSTER=us-west2-c; kubectl apply -k ${CLUSTER} --context=${CLUSTER}
コンテキストの切り替え
コマンドを実行する前に現在のコンテキストを切り替えます。
注意: この例では kustomization.yml
がコンテキスト名とマッチするディレクトリにあります。
# change the context to us-west2-c
kubectl config use-context us-west2-c
# deploy Resources from the ./us-west2-c/kustomization.yaml
kubectl apply -k ./us-west2-c
Kubeconfig によるクラスタの指定
別の方法として、異なる kubeconfig ファイルを異なるクラスタのために使うこともできます。kubeconfig は --kubeconfig
フラグで指定できます。
注意: この例では kustomization.yml
が kubeconfig のあるディレクトリ名とマッチするディレクトリにあります。
kubectl apply -k ./us-west2-c --kubeconfig /path/to/us-west2-c/config
kubeconfig とコンテキストを設定するための詳細は、k8s.io のドキュメント Configure Access to Multiple Clusters をご覧ください。