本主題說明如何更新現有使用者叢集的設定。
總覽
如果使用者叢集執行 Kubernetes 1.20 以上版本,您可以修改下列屬性:
- 本主題所述的使用者叢集安全群組。
- 叢集和節點集區版本。詳情請參閱「升級 GKE on AWS」一文。
- Proxy 設定。詳情請參閱「變更 Proxy 設定」。
- 節點集區的大小。詳情請參閱「調整節點集區大小」。
使用 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
權限。
更新安全性群組
在本節中,您將更新叢集和節點集區的安全性群組。 如要更新安全群組,請執行下列步驟:
從
anthos-aws
目錄使用anthos-gke
將環境切換至管理服務。cd anthos-aws anthos-gke aws management get-credentials
在文字編輯器中開啟建立 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
編輯
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 ...
編輯
AWSNodePool
資源的spec.securityGroupIDs
欄位。apiVersion: multicloud.cluster.gke.io/v1 kind: AWSNodePool spec: securityGroupIDs: - SECURITY_GROUP_ID ...
儲存檔案。如果您使用
kubectl edit
,kubectl
會自動套用變更。如果您要編輯 YAML 檔案,請使用下列指令將檔案套用至管理服務:env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f cluster-0.yaml
請與「
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
更新執行個體類型
在本節中,您將更新叢集和節點集區的執行個體類型。如要更新執行個體類型,請執行下列步驟:
從
anthos-aws
目錄使用anthos-gke
將環境切換至管理服務。cd anthos-aws anthos-gke aws management get-credentials
在文字編輯器中開啟建立 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
編輯
AWSCluster
的spec.controlPlane.instanceType
欄位。apiVersion: multicloud.cluster.gke.io/v1 kind: AWSCluster ... spec: controlPlane: instanceType: AWS_INSTANCE_TYPE ...
將 AWS_INSTANCE_TYPE 替換成新的執行個體類型。 詳情請參閱「支援的執行個體類型」。
編輯
AWSNodePool
資源的spec.instanceType
欄位。apiVersion: multicloud.cluster.gke.io/v1 kind: AWSNodePool spec: instanceType: AWS_INSTANCE_TYPE ...
儲存檔案。如果您使用
kubectl edit
,kubectl
會自動套用變更。如果您要編輯 YAML 檔案,請使用下列指令將檔案套用至管理服務:env HTTPS_PROXY=http://localhost:8118 \ kubectl apply -f cluster-0.yaml
請與「
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」。