だいごろうのブログ

熊本出身で大阪、東京、パリを転勤して、今は福岡でデータエンジニアです

[MEMO] katacodaでLearn Kubernetes ver10 Exam

www.katacoda.com

Kubernetesの理解度テストがあるのでそれをやってみた。 pod/deployment/serviceとかyamlの書き方などの基本の基をやる感じのてすとでしたわ。ただ、こういう実経験があるとやっぱり、自分のまだ理解してないことが出てくる。

知らんかったり、理解を深めたり

completion

これで、保管できるようになるらしい。

source <(kubectl completion bash)

Daemon Set

DaemonSet は全ノードでdeploymentが動いてるのを保証するオブジェクト。メトリクスを集めるのに適してる。

top command

こんな感じで、各nodeやpodのリソース使用率を管理できるみたい。 知らんかった!

master $ kubectl top node
NAME     CPU(cores)   CPU%   MEMORY(bytes)   MEMORY%
master   160m         4%     1029Mi          54%
node01   68m          1%     683Mi           17%
master $ kubectl top pod
NAME                            CPU(cores)   MEMORY(bytes)
examplehttpapp-58f66848-8tw4m   1m           0Mi
examplehttpapp-58f66848-j2zv5   0m           1Mi
examplehttpapp-58f66848-qv5rq   0m           0Mi
examplehttpapp-58f66848-rpfmh   0m           0Mi
examplehttpapp-58f66848-z5pwc   0m           0Mi

ReplicaSet and Deployment

この違いを正しく理解したかったのでちょっと調べたらこのページがわかりやすそう。DeploymentがReplicaSetを管理し、ReplicaSetがpodのScaleを担保するみたいな感じかな。

cstoku.dev

Deploymentはrollout戦略をサポートし、imageのバージョンなどを変更したときに、どうやって、ReplicaSetを作り変えるかを管理する。 また、これらのコマンドでそれを管理できる。

kubectl rollout status deployment hogehoge
kubectl rollout history deploy hogehoge

もちろん、rollbackもワン・コマンド!すげぇ!

kubectl rollout undo deployment hogehoge