Edited at

kubectl でのクラスタの切り替え設定


gcloud でのGKEクラスタ一覧および切り替え

一覧

$ gcloud container clusters list

NAME LOCATION MASTER_VERSION MASTER_IP MACHINE_TYPE NODE_VERSION NUM_NODES STATUS
xxx asia-east1 1.13.7-gke.8 35.221.128.181 n1-standard-2 1.13.7-gke.8 5 RUNNING
yyy us-central1 1.13.7-gke.8 35.238.182.245 custom-2-65536-ext 1.13.7-gke.8 1 RUNNING
zzz us-central1-a 1.13.7-gke.8 35.225.158.168 n1-standard-1 1.13.7-gke.8 3 RUNNING

切り替え。

$ gcloud container clusters get-credentials $NAME --zone=$ZONE --project $PROJECT_ID

または

$ gcloud container clusters get-credentials $NAME --region=$REGION --project $PROJECT_ID

Tips: $HOME/.kube/config に切り替え結果が書き込まれる

get-credentials を一度しておくと、 kubectl でのコンテキスト一覧に表示されるようになる。


kubectl でのコンテキスト一覧および切り替え

一覧

$ kubectl config get-contexts

切り替え

$ kubectl config use-context $CLUSTER_NAME

Currentの表示

$ kubectl config current-context

おまけ: クラスタおよびコンテキスト一覧と削除

get-credentials がまとめて作ってくれているが、内部的にはクラスタ設定と、コンテキスト(クラスタ+認証)設定が別々に作られている

クラスタの一覧および削除

$ kubectl get-clusters

$ kubectl delete-cluster $CLUSTER_NAME

コンテキストの一覧および削除

$ kubectl get-contexts

$ kubectl delete-context $CLUSTER_NAME


おまけ: peco および zsh completions を使った切り替え

peco や zsh completions で一覧からの選択切り替えができるようにしておくと便利


.zshrc

function gke-activate() {

name="$1"
zone_or_region="$2"
if echo "${zone_or_region}" | grep '[^-]*-[^-]*-[^-]*' > /dev/null; then
echo "gcloud container clusters get-credentials \"${name}\" --zone=\"${zone_or_region}\""
gcloud container clusters get-credentials "${name}" --zone="${zone_or_region}"
else
echo "gcloud container clusters get-credentials \"${name}\" --region=\"${zone_or_region}\""
gcloud container clusters get-credentials "${name}" --region="${zone_or_region}"
fi
}
function kx-complete() {
_values $(gcloud container clusters list | awk '{print $1}')
}
function kx() {
name="$1"
if [ -z "$name" ]; then
line=$(gcloud container clusters list | peco)
name=$(echo $line | awk '{print $1}')
else
line=$(gcloud container clusters list | grep "$name")
fi
zone_or_region=$(echo $line | awk '{print $2}')
gke-activate "${name}" "${zone_or_region}"
}
compdef kx-complete kx

kx [TAB] で補完が表示され、選択すると切り替え。

もしくは kx[ENTER] とすると peco で絞り込み検索ができます。