调整用户集群的大小意味着需要添加或移除节点。如果添加节点,则需要具有可用于新节点的 IP 地址。 您可以通过更改节点池中副本数来调整用户集群的大小。
如需了解用户集群数量的上限和下限,请参阅可伸缩性限制。
如需了解如何管理节点池,请参阅创建和管理节点池。
验证是否有足够的可用 IP 地址
如果您打算在调整大小后拥有 N 个节点,则必须具有 N+1 个 IP 地址可用。
在调整集群大小之前,请验证您是否有足够的 IP 地址。验证方法取决于集群使用的是 DHCP 服务器还是静态 IP 地址。
DHCP
如果集群使用 DHCP,请检查 DHCP 服务器是否可以提供足够的 IP 地址。它所提供的 IP 地址数量必须至少比调整大小后的集群中的节点数量多一个。
静态 IP
如何验证是否有足够的静态 IP 地址取决于是否已在 GKE On-Prem API 中注册集群。如果满足以下任一条件,则表示已在 GKE On-Prem API 中注册用户集群:
- 集群是使用 Google Cloud 控制台、Google Cloud CLI (gcloud CLI) 或 Terraform 创建的,它们会在 GKE On-Prem API 中自动注册集群。这些标准应用统称为 GKE On-Prem API 客户端。 
- 在用户集群上运行命令 - gkectl enroll cluster,该命令将其配置为由 GKE On-Prem API 管理。
如果 GKE On-Prem API 管理用户集群,请使用控制台计算 IP 数量并根据需要添加更多 IP。如果用户集群不是由 GKE On-Prem API 管理,则可以先运行 gkectl update cluster,验证是否在集群中分配了足够的 IP 地址。如果没有分配足够的 IP 地址,您可以在错误消息中找到所需的额外 IP 地址数量。
添加静态 IP
如果集群由 GKE On-Prem API 管理,请使用控制台添加更多 IP 地址。否则,请在管理员工作站上使用命令行。
控制台
- 在控制台中,进入 Google Kubernetes Engine 集群概览页面。 
- 选择用户集群所在的 Google Cloud 项目。 
- 在集群列表中,点击集群的名称,然后点击详细信息面板中的更多详情。 
- 在网络部分中,点击 修改。 
- 在添加其他静态 IP 地址 (Add additional static IP addresses) 对话框中,点击添加 IP 地址。输入 IP 地址和(可选)主机名。根据需要重复上述步骤。 完成后,请点击完成。 
命令行
- 打开用户集群的 IP 地址块文件进行修改。 
- 确认您要用于用户集群的所有 IP 地址都包含在 IP 块文件中。IP 地址块文件中的 IP 地址数量至少应该比调整大小后的集群中的节点数量多一个。 
- 要查看为用户集群预留的地址,请运行以下命令: - kubectl get cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --namespace USER_CLUSTER_NAME USER_CLUSTER_NAME --output yaml - 替换以下内容: - ADMIN_CLUSTER_KUBECONFIG:管理员集群 kubeconfig 文件的路径
- USER_CLUSTER_NAME:用户集群的名称
 
- 将所需数量的额外静态 IP 地址添加到相应的块中,然后运行 - gkectl update cluster。
以下是具有四个 IP 地址和相应主机名的 IP 地址块文件的示例:
hostconfig:
dns: 172.16.255.1
tod: 216.239.35.0
blocks:
- netmask: 255.255.248.0
  gateway: 21.0.135.254
  ips:
  - ip: 21.0.133.41
    hostname: user-node-1
  - ip: 21.0.133.50
    hostname: user-node-2
  - ip: 21.0.133.56
    hostname: user-node-3
  - ip: 21.0.133.47
    hostname: user-node-4
调整集群大小
控制台
- 在控制台中,进入 Google Kubernetes Engine 集群概览页面。 
- 选择用户集群所在的 Google Cloud 项目。 
- 在集群列表中,点击集群的名称,然后点击详细信息面板中的更多详情。 
- 点击节点标签页。 
- 点击要调整其大小的节点池的名称。 
- 点击 调整大小。 
- 在节点字段中,输入节点池中所需的节点数,然后点击完成。 
- 点击 以返回到上一页。 
- 控制台会显示“集群状态:正在更改”。点击显示详情,以查看资源状态条件和状态消息。 
命令行
在用户集群配置文件中,更新一个或多个 nodePools 元素中 replicas 字段的值。
调整集群大小:
gkectl update cluster --kubeconfig ADMIN_CLUSTER_KUBECONFIG --config USER_CLUSTER_CONFIG
替换以下内容:
- ADMIN_CLUSTER_KUBECONFIG:管理员集群 kubeconfig 文件的路径
- USER_CLUSTER_CONFIG:用户集群配置文件的路径
验证调整大小是否成功:
- 如果未启用高级集群: - kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get nodes kubectl --kubeconfig USER_CLUSTER_KUBECONFIG describe machinedeployments NODE_POOL_NAME | grep Replicas 
- 如果已启用高级集群 - kubectl --kubeconfig USER_CLUSTER_KUBECONFIG get nodes kubectl --kubeconfig ADMIN_CLUSTER_KUBECONFIG describe nodepoolclaim -n USER_CLUSTER_NAMESPACE NODE_POOL_NAME | grep "Node Count" 
替换以下内容:
- ADMIN_CLUSTER_KUBECONFIG:管理员集群 kubeconfig 文件的路径
- USER_CLUSTER_KUBECONFIG:用户集群 kubeconfig 文件的路径
- NODE_POOL_NAME:您调整大小的节点池的名称。
- USER_CLUSTER_NAMESPACE:您调整大小的用户集群的命名空间。
问题排查
请参阅排查集群创建和升级问题。