次の方法で共有


ReplicaSet を作成する

適用対象: AKS on Azure Stack HCI 22H2、Windows Server 上の AKS

この記事では、Azure Arc で有効になっている AKS ReplicaSets を作成、スケーリング、および削除する方法について説明します。ReplicaSet は、レプリカ ポッドの安定したセットが常に実行されるようにするために使用されます。

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 を作成する

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

  • ReplicaSet 名を使用して ReplicaSet を削除するには、次のコマンドを実行します。

    kubectl delete rs <ReplicaSet_NAME>
    
  • ファイル名を使用して ReplicaSet を削除するには、次のコマンドを実行します。

    kubectl delete –f nginx_replicaset.yaml
    
  • 上記のコマンドは、ReplicaSet とそれが管理するすべてのポッドを削除します。 ReplicaSet リソースのみを削除し、所有者なしでポッドを保持する場合は、手動で削除する必要があります。 ReplicaSet を手動で削除するには、次のコマンドを実行します。

    kubectl delete rs <ReplicaSet_NAME> --cascade=false
    

次のステップ