本主題說明如何更新現有使用者叢集的設定。
總覽
如果使用者叢集執行 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」。