ReplicaSet を作成する
適用対象: AKS on Azure Stack HCI 22H2、Windows Server 上の AKS
この記事では、Azure Arc で有効になっている AKS ReplicaSets を作成、スケーリング、および削除する方法について説明します。ReplicaSet は、レプリカ ポッドの安定したセットが常に実行されるようにするために使用されます。
ReplicaSet の概要
ReplicaSet は、ポッドの複数のインスタンスを実行し、指定された数のポッドを一定に保つプロセスです。 これにより、レプリカ ポッドの安定したセットがすべての時点で実行され、指定された数の同一のポッドを使用できる状態が保証されます。
ポッドに障害が発生すると、ReplicaSet によってポッドの新しいインスタンスが起動され、実行中のインスタンスが指定された数に達するとスケールアップされます。 逆に、同じラベルを持つインスタンスが作成されると、ポッドがスケールダウンまたは削除されます。
ReplicaSet を作成する
kubectl create
と kubectl 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