メモを残そうと思いつつ、まとまってかけていないので、もう雑多なままですが、とりあえず思い付きを書きます。
そのうち整理したい。
クラスタと契約
$ gcloud container clusters list
$ gcloud container clusters get-credentials $NAME --zone=$ZONE --project $PROJECT_ID
kubectl get .. で設定を見る。詳細は kubectl describe .... で見る。
稼働状況
Deploy した内容を調べる。kubectl apply -y deployment.yaml などをした後や、GCPのcloud build が通った後にみる。
$ kubectl get deployments
NAME READY UP-TO-DATE AVAILABLE AGE
hello-app 3/3 3 3 94s
IPアドレスとか
IPアドレス見るときは
$ kubectl get pod -o wide
としています。サービス(ルータみたいなの?)については、
$ kubectl get service <SERVICE NAME>
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
<SERVICE NAME> LoadBalancer 10.79.247.115 10.146.0.9 80:32456/TCP 3m14s
$ kubectl describe service <SERVICE NAME>
CPUの使用率を見る: top
top も使える。
$ kubectl top node
$ kubectl top pod
HorizontalPodAutoscalerの設定
CPU使用率で制御の設定をかけられる。
Deployment について設定するみたい。
動作状態は
$ kubectl get HorizonalPodAutoScaler
で見れる。describe も。現在の使用例は kubectl top
で見れる。
デバッグするとき
Pod をのぞく
稼働中のpod に入ってい調べる。というときのワークフロー
$ kubectl get pods
でpodを調べて入る。Podではubuntuをベースにしたコンテナが実行されている。
$ kubectl exec -it <POD_NAME> -- /bin/bash
ファイルのコピーもできる。
$ kubectl cp <POD_NAME>:<file_path> <local-filename>
Tutorial より
Docker にkubectl 含める
ubuntu:18.04 をbase にしてcontainer を作るとき、下記をDockerfile に書いたら、container 内でkubectl が使えた。
RUN apt-get update -y && apt-get install -y apt-transport-https gnupg2 curl && \
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add - && \
echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | tee -a /etc/apt/sources.list.d/kubernetes.list && \
apt update -y && apt install kubectl -
(2021/01/23)
更新記録
- 2021/01/23 とりあえず投稿してみた。
- 2021/02/08 に 「Docker にkubectl 含める」追加。