LoginSignup
100
61

More than 3 years have passed since last update.

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

Last updated at Posted at 2019-05-03

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 config get-clusters
$ kubectl config delete-cluster $CLUSTER_NAME

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

$ kubectl config get-contexts
$ kubectl config 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 で絞り込み検索ができます。

100
61
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
100
61