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数の変更