更新用户集群

本主题介绍如何更新现有用户集群的配置。

概览

对于运行 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 修改

    如需使用 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 修改

    如需使用 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
    

后续步骤