初心者のKubernetes入門(書籍 Kubernetes 実践入門の写経から学ぶ)体感編パート3(Label操作)


背景

個人的にインフラの知識以上にこれからのアプリケーションが動く環境を作ってデプロイしたりしてこれからの知識を身に着けたい。そしてより一層、自分の知識のアップデートをしたいと思いました。

その中でこの本に出会い、これから少しずつやったことを残し、未来の自分への手紙としてもあり、見つめ直せればと思いました。

引用や参考と今回の自分の勉強用の書籍の紹介

技術評論社『Kubernetes実践入門』のサンプルコード
Kubernetes実践入門 プロダクションレディなコンテナ&アプリケーションの作り方

実際の学びについて

書籍を読みながら、章ごとに少しずつ進めていきたいと思います。
GitHub のソースコードも使いながら学んで行きたいと思います。
この章の勉強は本当に書籍の写経が主になるかもしれません・・・

勉強開始

Label を操作、ReplicaSet が Pod を管理している方法と管理対象から外す方法を知る

dive-mattermost-previewのReplicaSetが持つLabelセレクタを取得
$ kubectl get rs $(kubectl get rs | grep dive-mattermost|awk '{print $1}') -o template --template='{{.spec.selector.matchLabels}}'
map[app:dive-mattermost-preview pod-template-hash:6b76f7944]

awk の awk '{print $1}' についてはシェル構文

dive-mattermost-previewの1つ目のPodが持つラベルを取得
kubectl get po $(kubectl get po| grep dive-mattermost|head -n 1|awk '{print $1}') -o template --template='{{.metadata.labels}}'
map[app:dive-mattermost-preview pod-template-hash:6b76f7944]
labelを「task:inspect-fault」に変更
$ kubectl edit po $(kubectl get po | grep dive-mattermost| head -n 1|awk '{print $1}')
pod/dive-mattermost-preview-6b76f7944-8fhr4 edited
taskラベルが追加されてることを確認
$ kubectl get po dive-mattermost-preview-6b76f7944-8fhr4 -o template --template='{{.metadata.labels}}'
map[pod-template-hash:6b76f7944 task:inspect-fault]

起動している Pod が変更されていること

現在のPodの状況を確認
$ kubectl get po | grep -e NAME -e dive-
NAME                                      READY   STATUS    RESTARTS   AGE
dive-mattermost-preview-6b76f7944-8fhr4   1/1     Running   0          39h
dive-mattermost-preview-6b76f7944-gdbmc   1/1     Running   0          9m37s
dive-mattermost-preview-6b76f7944-qn28g   1/1     Running   0          39h
labelを「app:dive-mattermost-preview」を追加
$ kubectl edit po dive-mattermost-preview-6b76f7944-8fhr4
pod/dive-mattermost-preview-6b76f7944-8fhr4 edited
appラベルが追加されてることを確認
$ kubectl get po dive-mattermost-preview-6b76f7944-8fhr4 -o template --template='{{.metadata.labels}}'
map[app:dive-mattermost-preview pod-template-hash:6b76f7944 task:inspect-fault][

起動している Pod が変更されていること

現在のPodの状況を確認
$ kubectl get po | grep -e dive -e NAME
NAME                                      READY   STATUS    RESTARTS   AGE
dive-mattermost-preview-6b76f7944-8fhr4   1/1     Running   0          39h
dive-mattermost-preview-6b76f7944-qn28g   1/1     Running   0          39h

次は 3.2.2 章をやっていきます。

  • 「OwnerReference」について学びたいと思います

最後に

今回は Label を変更することで Pod があっち行ったり、こっち来たり、を体験させて教えてくれる内容だったので体感することで記憶にも残り、すごく良かった写経だっと思います