Kubernetes CORE CONCEPTS – REPLICASETS
ReplicaSetとは 公式サイトでチェック >>> ReplicaSet | Kubernetes
■ kubectl get replicaset / kubectl get rs
システム上 ReplicaSetが幾つ存在するか確認。
以下は1つReplicaSetが存在し、new-replica-set に対してPODが4つDESIREDである。
ReplicaSetの出力には次のフィールドが表示:
NAME
は、名前空間内にあるReplicaSetの名前の一覧です。DESIRED
は、アプリケーションの理想的な レプリカ の値です。これはDeploymentを作成したときに定義したもので、これが 理想的な状態 と呼ばれるものです。CURRENT
は現在実行されているレプリカの数です。READY
は、ユーザーが使用できるアプリケーションのレプリカの数です。AGE
は、アプリケーションが稼働してからの時間です。
参考 公式サイト>>> Deployment
■ kubectl describe replicaset
Replicasetの詳細を調べるコマンド。Replicasetの名前はnew-replica-setでポッドを作成するために使用されるイメージはbusybox77。
■ kubectl describe pod <pod-name>
特定のpod名を指定して詳細を見る。
pod名はkubectl describe replicaset のコマンドでEvents配下のMessageの「Created pod:」に記載されている。
kubectl describe replicaset で「Pods Status: 0 Running」である為、podのEventsの詳細を確認。
Image の”busybox777”が存在しない為エラーとなり、podのステータスがRunningが0となっている。
■ kubectl delete pod <pod-name> podを削除した場合どうなるか?
削除されたと思いきや、kubectl get podでpod数を確認すると、減っていないが、削除した名前のpodが無くなっている。
ReplicaSetでは必要な数のPODSが常に実行されるようになっている為削除しても必要な数のpod数に復元される。
■ kubectl create -f <yaml-file>
既存のYAMLファイルを使用してReplicaSetを作成。
/root配下にあるyamlファイル名を確認
上記の場合version の修正を行う必要がある。
■ kubectl explain replicaset version を確認
versionが違うのでviを使用して編集。
再度Replicasetを作成、問題なく作成されるとcreatedと表示される。
新にReplicasetを2のYAMLファイルを使用して作ろうとして以下エラーが表示された場合。
template labelがマッチしないエラーな為、viでtierをnginxに編集すると作成可能。
■kubectl apply -f /root/replicaset-definition-2.yaml
編集したファイルをアプライする場合のコマンド。
■ kubectl delete replicaset/rs <replicaset-name> ReplicaSetの削除
kubectl delete -f <file-name>.yaml
■ kubectl edit rs <replicaset-name> vi以外でも編集可能
上記Readyになってない例としてはimage名を変更すし、既存のpodをすべて削除するとオートで新しいpodが育成されてReadyとなる。
■ kubectl scale rs <replicaset-name> --replicas=<replica-number>
Replicaset数の変更