初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)体感編パート2
背景
個人的にインフラの知識以上にこれからのアプリケーションが動く環境を作ってデプロイしたりしてこれからの知識を身に着けたい。そしてより一層、自分の知識のアップデートをしたいと思いました。
その中でこの本に出会い、これから少しずつやったことを残し、未来の自分への手紙としてもあり、見つめ直せればと思いました。
引用や参考と今回の自分の勉強用の書籍の紹介
技術評論社『Kubernetes実践入門』のサンプルコード
Kubernetes実践入門 プロダクションレディなコンテナ&アプリケーションの作り方
実際の学びについて
書籍を読みながら、章ごとに少しずつ進めていきたいと思います。
GitHub のソースコードも使いながら学んで行きたいと思います。
この章の勉強は本当に書籍の写経が主になるかもしれません・・・
勉強開始
流れを理解する
kubectl edit で Deployment をスケールアウトし、調整ループの挙動を確認する
前回までの Deployment のレプリカ数を変更してどういう動きになるのかを確認していると思います。
$ kubectl edit deploy dive-mattermost-preview -v=6
〜〜 ファイルを編集 〜〜
I0416 21:11:36.616473 10158 round_trippers.go:438] GET https://kubernetes.docker.internal:6443/openapi/v2?timeout=32s 200 OK in 21 milliseconds
I0416 21:11:36.787119 10158 round_trippers.go:438] PATCH https://kubernetes.docker.internal:6443/apis/extensions/v1beta1/namespaces/default/deployments/dive-mattermost-preview 200 OK in 33 milliseconds
replicas を変更後のイベントを確認
Pod が作成されていることを確認
KIND NAME SOURCE REASON MESSAGE
Deployment dive-mattermost-preview.16064ba66c7717ec deployment-controller ScalingReplicaSet Scaled up replica set dive-mattermost-preview-6b76f7944 to 2
ReplicaSet dive-mattermost-preview-6b76f7944.16064ba676963f78 replicaset-controller SuccessfulCreate Created pod: dive-mattermost-preview-6b76f7944-ndfrv
Pod dive-mattermost-preview-6b76f7944-ndfrv.16064ba67c1c6d28 default-scheduler Scheduled Successfully assigned default/dive-mattermost-preview-6b76f7944-ndfrv to docker-desktop
Pod dive-mattermost-preview-6b76f7944-ndfrv.16064ba6cd721b28 kubelet Pulled Container image "k8spracticalguide/mattermost-preview:4.10.2" already present on machine
Pod dive-mattermost-preview-6b76f7944-ndfrv.16064ba6d5b0b920 kubelet Created Created container mattermost-preview
Pod dive-mattermost-preview-6b76f7944-ndfrv.16064ba6eb91e5e8 kubelet Started Started container mattermost-preview
kubectl scale を使って ReplicaSet をスケールインし、セルフ・ヒーリングの挙動を確認する
現在の Pod 数を確認してみます。
これが kubectl scale コマンド後には変更するのを確認します。
$ kubectl get po -w | grep -e dive-mattermost -e NAME
NAME READY STATUS RESTARTS AGE
dive-mattermost-preview-6b76f7944-ndfrv 1/1 Running 0 7m26s
dive-mattermost-preview-6b76f7944-zbv99 1/1 Running 0 24h
$ kubectl get rs
NAME DESIRED CURRENT READY AGE
dive-mattermost-preview-6b76f7944 2 2 2 24h
mattermost-preview-78bc8686ff 1 1 1 3d
my-deploy-76d698444c 3 3 3 6d1h
my-rs 3 3 3 7d23h
$ kubectl get rs | grep dive-mattermost | awk '{print $1}'
dive-mattermost-preview-6b76f7944
$ kubectl scale rs $(kubectl get rs | grep dive-mattermost | awk '{print $1}') --replicas=1 -v=6 2>&1 | grep -e mattermost -e http
I0416 21:25:16.512779 10512 round_trippers.go:438] GET https://kubernetes.docker.internal:6443/apis/extensions/v1beta1/namespaces/default/replicasets/dive-mattermost-preview-6b76f7944 200 OK in 25 milliseconds
I0416 21:25:16.622778 10512 round_trippers.go:438] PUT https://kubernetes.docker.internal:6443/apis/extensions/v1beta1/namespaces/default/replicasets/dive-mattermost-preview-6b76f7944/scale 200 OK in 99 milliseconds
replicaset.extensions/dive-mattermost-preview-6b76f7944 scaled
$ kubectl get po -w | grep -e dive-mattermost -e NAME
NAME READY STATUS RESTARTS AGE
dive-mattermost-preview-6b76f7944-ndfrv 1/1 Running 0 7m26s
dive-mattermost-preview-6b76f7944-zbv99 1/1 Running 0 24h
dive-mattermost-preview-6b76f7944-ndfrv 1/1 Terminating 0 13m
dive-mattermost-preview-6b76f7944-7rtnv 0/1 Pending 0 0s
dive-mattermost-preview-6b76f7944-7rtnv 0/1 Pending 0 0s
dive-mattermost-preview-6b76f7944-7rtnv 0/1 ContainerCreating 0 0s
dive-mattermost-preview-6b76f7944-7rtnv 1/1 Running 0 3s
dive-mattermost-preview-6b76f7944-ndfrv 0/1 Terminating 0 14m
dive-mattermost-preview-6b76f7944-ndfrv 0/1 Terminating 0 14m
dive-mattermost-preview-6b76f7944-ndfrv 0/1 Terminating 0 14m
dive-mattermost-preview-6b76f7944-ndfrv 0/1 Terminating 0 14m
kubectl delete を使って Pod を削除し、セルフヒーリングの挙動を確認
Pod を削除してみて、その後 Pod の状態を確認し AGE の時間が直前だったらもとに戻っているはず
$ kubectl delete po --all -v=6 2>&1 | grep DELETE
I0416 21:33:17.794821 10594 round_trippers.go:438] DELETE https://kubernetes.docker.internal:6443/api/v1/namespaces/default/pods/dive-mattermost-preview-6b76f7944-7rtnv 200 OK in 58 milliseconds
I0416 21:33:17.955467 10594 round_trippers.go:438] DELETE https://kubernetes.docker.internal:6443/api/v1/namespaces/default/pods/dive-mattermost-preview-6b76f7944-zbv99 200 OK in 151 milliseconds
I0416 21:33:18.057367 10594 round_trippers.go:438] DELETE https://kubernetes.docker.internal:6443/api/v1/namespaces/default/pods/mattermost-preview-78bc8686ff-sx8ds 200 OK in 93 milliseconds
AGE が直後からになっていることを確認
# 実行前
$ kubectl get po | grep matter
dive-mattermost-preview-6b76f7944-7rtnv 1/1 Running 0 5m5s
dive-mattermost-preview-6b76f7944-zbv99 1/1 Running 0 24h
mattermost-preview-78bc8686ff-sx8ds 1/1 Running 0 3d
# 実行後
$ kubectl get po | grep matter
dive-mattermost-preview-6b76f7944-8fhr4 1/1 Running 0 93s
dive-mattermost-preview-6b76f7944-qn28g 1/1 Running 0 94s
mattermost-preview-78bc8686ff-wnkg7 1/1 Running 0 93s
Author And Source
この問題について(初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)体感編パート2), 我々は、より多くの情報をここで見つけました https://qiita.com/nodokaodayaka/items/fa87fd7a3733957e7aca著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .