GKE でのk8s クラスタの管理において、Cloud Shell
経由の操作と、ローカルPCからgcloud コマンドライン ツール での操作を混ぜると、context にゴミが残るというお話。
(もしかしたらcontext の情報をうまい具合にポーリング的に再読込させる?回避策があるかもしれないので、知っている人がいれば教えていただけるとめっちゃ嬉しいです。)
対象読者
- GCP ちょっとワカル
- k8s ちょっとワカル
※ 本当にちょっとワカルくらいの人を対象にしています。めっちゃワカル人は、間違いなどあればご指摘いただけるとうれしいです。
Cloud Shell
を知らない人へ
GCP には、Cloud Shell
という仕組みがあり、ローカルPCからGCPをいじる環境がなくても、GCPのブラウザ画面から、GCPをいじいじできます。
さっそくExample
ここに、ローカルPCからgcloud コマンドライン ツールでつくったk8sクラスタがあるじゃろ。
$ gcloud container clusters list
NAME LOCATION MASTER_VERSION MASTER_IP MACHINE_TYPE NODE_VERSION NUM_NODES STATUS
nginxk8s us-central1-a 1.9.7-gke.3 XXX.XXX.XXX.XXX n1-standard-1 1.9.7-gke.3 3 RUNNING
$ kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.XXX.XXX.XXX <none> 443/TCP 2m
nginx LoadBalancer 10.XXX.XXX.XXX XXX.XXX.XXX.XXX 80:31152/TCP 4s
そのクラスタを、Cloud Shell
からこうじゃ!!(クラスタ削除)
$ gcloud container clusters delete nginxk8s --zone us-central1-a
オチ
で、ローカルPCから、context を確認すると、さっきCloud Shell
で消したクラスタのcontextが、以下のようにゴミとして残る。
$ kubectl config get-contexts
CURRENT NAME CLUSTER AUTHINFO NAMESPACE
* gke_XXXXXX_us-central1-a_nginxk8s gke_XXXXXX_us-central1-a_nginxk8s gke_XXXXXX_us-central1-a_nginxk8s
minikube minikube minikube
ゴミそうじ
$ kubectl config delete-context gke_XXXXXX_us-central1-a_nginxk8s
おわり。