共用方式為


建立 ReplicaSets

適用於:Azure Local 22H2 上的 AKS、Windows Server 上的 AKS

本文說明如何在 Azure Arc 所啟用的 AKS 中建立、調整及刪除 ReplicaSet 。ReplicaSet 可用來確保一組穩定的複本 Pod 在任何指定時間執行。

ReplicaSets 概觀

ReplicaSet 是一個進程,會執行 Pod 的多個實例,並保留指定的 Pod 數目常數。 它可確保一組穩定的複本 Pod 在任何指定時間執行,這可確保可用的指定數目完全相同的 Pod。

當 Pod 失敗時,ReplicaSet 會啟動 Pod 的新實例,並在執行中的實例達到指定數目時相應增加。 相反地,當建立具有相同標籤的實例時,它會相應減少或刪除 Pod。

建立 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

您可以使用 命令變更其標籤 kubectl edit ,以移除 ReplicaSet 所管理的 Pod,但無法刪除該 Pod。 例如,如果您執行 kubectl edit pods 7677-69h5b,您可以在組態檔開啟之後變更 Pod 標籤。

調整 ReplicaSet

有兩種方式可以變更 ReplicaSet 管理的 Pod 數目。

  • 使用下列命令編輯控制器的組態:

    kubectl edit rs <ReplicaSet_NAME>
    
  • 使用下列命令直接增加或減少數位:

kubectl scale –replicas=2 rs <ReplicaSet_NAME>

當您編輯指令清單檔時,可以使用更新的組態來取代現有的組態:

kubectl replace –f nginx_replicaset.yaml

然後,若要檢視 ReplicaSet 的狀態,請執行 kubectl get rs <ReplicaSet_NAME>

自動調整也是使用 kubectl autoscale rs web –max=5ReplicaSets 的選項。 您可以使用自動調整來根據節點的CPU負載調整 Pod 數目。

刪除 ReplicaSet

如同其他 Kubernetes 物件,例如 DaemonSets,您可以使用 命令刪除 ReplicaSet kubectl delete 。 例如,您可以使用下列命令:

  • 若要使用 ReplicaSet 名稱刪除 ReplicaSet,請執行下列命令:

    kubectl delete rs <ReplicaSet_NAME>
    
  • 若要使用其檔名刪除 ReplicaSet,請執行下列命令:

    kubectl delete –f nginx_replicaset.yaml
    
  • 上述命令會刪除 ReplicaSet 及其管理的所有 Pod。 如果您想要只刪除 ReplicaSet 資源,並保留沒有擁有者的 Pod,您必須手動刪除它們。 若要手動刪除 ReplicaSet,請執行下列命令:

    kubectl delete rs <ReplicaSet_NAME> --cascade=false
    

下一步