更新使用者叢集

本主題說明如何更新現有使用者叢集的設定。

總覽

如果使用者叢集執行 Kubernetes 1.20 以上版本,您可以修改下列屬性:

使用 Kubernetes 1.22 以上版本時,您可以更新 EC2 執行個體類型。

如要更新這些資源,請編輯 AWSClusterAWSNodePool 資源。

更新設定後,GKE on AWS 會將叢集或節點集區設為 Updating 狀態。更新完成後,叢集或節點集區會返回 Provisioned 狀態。

事前準備

如要修改使用者叢集,叢集和節點集區必須執行 Kubernetes 1.20 以上版本。如果叢集未執行 Kubernetes 1.20,請先升級使用者叢集

如要修改叢集的安全性群組,管理 GKE on AWS 使用者叢集的 AWS IAM 角色 (在 anthos-gke.yaml 中設為 spec.authentication.awsIAM.adminIdentityARNs) 必須具備 ec2:ModifyNetworkInterfaceAttribute 權限。

更新安全性群組

在本節中,您將更新叢集和節點集區的安全性群組。 如要更新安全群組,請執行下列步驟:

  1. anthos-aws 目錄使用 anthos-gke 將環境切換至管理服務。

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. 在文字編輯器中開啟建立 AWSCluster 的 YAML 檔案。如果沒有初始 YAML 檔案,可以使用 kubectl edit

    編輯 YAML

    如果您按照「建立使用者叢集」一文中的操作說明進行,YAML 檔案會命名為 cluster-0.yaml。在文字編輯器中開啟這個檔案。

    kubectl edit

    如要使用 kubectl edit 編輯 AWSCluster,請執行下列指令:

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl edit awscluster cluster-name
    

    cluster-name 替換為您的 AWSCluster。舉例來說,如要編輯預設叢集 cluster-0,請執行下列指令:

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl edit awscluster cluster-0
    
  3. 編輯 AWSClusterspec.controlPlane.securityGroupIDs 欄位。

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSCluster
    ...
    spec:
      controlPlane:
        securityGroupIDs:
          - SECURITY_GROUP_ID
        ...
    

    SECURITY_GROUP_ID 替換為新安全性群組的 ID。 如要新增多個安全群組,請在 spec.controlPlane.securityGroupIDs 下的陣列中新增其他值。

    以下範例包含安全性群組 sg-12345678absg-abcdef1234

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSCluster
    spec:
      controlPlane:
        securityGroupIDs:
          - sg-12345678ab
          - sg-abcdef1234
        ...
    
  4. 編輯 AWSNodePool 資源的 spec.securityGroupIDs 欄位。

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSNodePool
    spec:
      securityGroupIDs:
        - SECURITY_GROUP_ID
      ...
    
  5. 儲存檔案。如果您使用 kubectl editkubectl 會自動套用變更。如果您要編輯 YAML 檔案,請使用下列指令將檔案套用至管理服務:

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl apply -f cluster-0.yaml
    
  6. 請與「kubectl」確認更新狀態。更新完成後,物件的狀態會從 Updating 變更為 Provisioned

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl get AWSClusters,AWSNodePools
    

    舉例來說,當叢集處於更新狀態時,輸出內容會類似於下列內容:

    NAME        STATE       AGE      VERSION           ENDPOINT
    cluster-0   Updating    10m41s   1.25.5-gke.2100   gke-xyz.elb.us-east-1.amazonaws.com
    
    NAME               CLUSTER     STATE       AGE       VERSION
    cluster-0-pool-0   cluster-0   Updating    10m40s    1.25.5-gke.2100
    

更新執行個體類型

在本節中,您將更新叢集和節點集區的執行個體類型。如要更新執行個體類型,請執行下列步驟:

  1. anthos-aws 目錄使用 anthos-gke 將環境切換至管理服務。

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. 在文字編輯器中開啟建立 AWSCluster 的 YAML 檔案。如果沒有初始 YAML 檔案,可以使用 kubectl edit

    編輯 YAML

    如果您按照「建立使用者叢集」一文中的操作說明進行,YAML 檔案會命名為 cluster-0.yaml。在文字編輯器中開啟這個檔案。

    kubectl edit

    如要使用 kubectl edit 編輯 AWSCluster,請執行下列指令:

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl edit awscluster cluster-name
    

    cluster-name 替換為您的 AWSCluster。舉例來說,如要編輯預設叢集 cluster-0,請執行下列指令:

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl edit awscluster cluster-0
    
  3. 編輯 AWSClusterspec.controlPlane.instanceType 欄位。

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSCluster
    ...
    spec:
      controlPlane:
        instanceType: AWS_INSTANCE_TYPE
        ...
    

    AWS_INSTANCE_TYPE 替換成新的執行個體類型。 詳情請參閱「支援的執行個體類型」。

  4. 編輯 AWSNodePool 資源的 spec.instanceType 欄位。

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSNodePool
    spec:
      instanceType: AWS_INSTANCE_TYPE
      ...
    
  5. 儲存檔案。如果您使用 kubectl editkubectl 會自動套用變更。如果您要編輯 YAML 檔案,請使用下列指令將檔案套用至管理服務:

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl apply -f cluster-0.yaml
    
  6. 請與「kubectl」確認更新狀態。更新完成後,物件的狀態會從 Updating 變更為 Provisioned

    env HTTPS_PROXY=http://localhost:8118 \
      kubectl get AWSClusters,AWSNodePools
    

    舉例來說,當叢集處於更新狀態時,輸出內容會類似於下列內容:

    NAME        STATE       AGE      VERSION           ENDPOINT
    cluster-0   Updating    10m41s   1.25.5-gke.2100   gke-xyz.elb.us-east-1.amazonaws.com
    
    NAME               CLUSTER     STATE       AGE       VERSION
    cluster-0-pool-0   cluster-0   Updating    10m40s    1.25.5-gke.2100
    

後續步驟

  • 如要進一步瞭解如何升級使用者叢集,請參閱「升級 GKE on AWS」。