ReplicaSet を作成する

ReplicaSet は、ポッドの複数のインスタンスを実行し、指定された数のポッドを一定に保つプロセスです。 これにより、レプリカ ポッドの安定したセットがすべての時点で実行され、指定された数の同一のポッドを使用できる状態が保証されます。

ポッドに障害が発生すると、ReplicaSet によってポッドの新しいインスタンスが起動され、実行中のインスタンスが指定された数に達するとスケールアップされます。 逆に、同じラベルを持つインスタンスが作成されると、ポッドがスケールダウンまたは削除されます。

ReplicaSet を作成する

kubectl createkubectl apply コマンドを使用して ReplicaSet を作成します。 下の例では、YAML ファイルを使用して ReplicaSet を作成します。

kubectl apply –f nginx_replicaset.yaml

ReplicaSet 構成ファイルの機能が、YAML 形式で示されています。

apiVersion: apps/v1  
kind: ReplicaSet  
metadata: 
      name: web
      labels: 
         env: dev
         role: web
 spec:  
       replicas: 4
       selector: 
           matchlabels: 
  	 role: web
        template:
           metadata:
   	labels:
       	    role: web
            spec:  
      	containers:  
       	    -name: nginx  
       	    image: nginx

ReplicaSet を作成したら、次のコマンドを実行して状態を表示できます。

kubectl get rs

ReplicaSet が管理するポッドは、kubectl edit コマンドを使用してラベルを変更することで除去できますが、削除することはできません。 たとえば、kubectl edit pods 7677-69h5b を実行すると、構成ファイルが開いたときにポッド ラベルを変更できます。

ReplicaSet をスケーリングする

ReplicaSet が管理するポッドの数を変更するには、2 つの方法があります。

次のコマンドを使用して、コントローラーの構成を編集できます。

kubectl edit rs <ReplicaSet_NAME>

また、次のコマンドを使用して、数を直接増減することもできます。

kubectl scale –replicas=2 rs <ReplicaSet_NAME>

マニフェスト ファイルを編集するときに、既存の構成を、更新された構成に置き換えることができます。

kubectl replace –f nginx_replicaset.yaml

その後、ReplicaSet の状態を表示するために、kubectl get rs <ReplicaSet_NAME> を実行します。

ReplicaSets では kubectl autoscale rs web –max=5 を使用した自動スケールもオプションの 1 つです。 自動スケールを使用して、ノードの CPU 負荷に応じてポッドの数を調整できます。

ReplicaSet を作成する

デーモンセットなどの他の Kubernetes オブジェクトと同様に、kubectl delete コマンドを使用して ReplicaSet を削除できます。 たとえば、次のコマンドを使用できます。

kubectl delete rs <ReplicaSet_NAME>

ファイル名を使用して ReplicaSet を削除するには、次を実行します。

kubectl delete –f nginx_replicaset.yaml

これらのコマンドを使用して、ReplicaSet と、それが管理しているすべてのポッドを削除します。 ただし、ReplicaSet リソースのみを削除し、所有者なしでポッドを保持する場合、ポッドは手動で削除する必要があります。 ReplicaSet を手動で削除するには、次のコマンドを実行します。

kubectl delete rs <ReplicaSet_NAME> --cascade=false

次のステップ