更新使用者叢集

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

總覽

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

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

如要更新這些資源,請編輯 AWSCluster 和 AWSNodePool 資源。

更新設定後,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. 編輯 AWSCluster 的 spec.controlPlane.securityGroupIDs 欄位。

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

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

    以下範例包含安全性群組 sg-12345678ab 和 sg-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 edit,kubectl 會自動套用變更。如果您要編輯 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. 編輯 AWSCluster 的 spec.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 edit,kubectl 會自動套用變更。如果您要編輯 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」。