调整用户集群的大小意味着需要添加或移除节点。如果添加节点,则需要具有可用于新节点的 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 控制台中创建的,该控制台自动将 GKE On-Prem API 配置为管理集群。
在用户集群上运行命令
gkectl enroll cluster
,该命令将其配置为由 GKE On-Prem API 管理。
如果 GKE On-Prem API 管理用户集群,请使用 Google Cloud 控制台计算 IP 数量并根据需要添加更多 IP。如果用户集群不是由 GKE On-Prem API 管理,则可以先运行 gkectl update cluster
,验证是否在集群中分配了足够的 IP 地址。如果没有分配足够的 IP 地址,您可以在错误消息中找到所需的额外 IP 地址数量。
添加静态 IP
如果集群由 GKE On-Prem API 管理,请使用 Google Cloud 控制台添加更多 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 项目。
在集群列表中,点击集群的名称,然后点击详细信息面板中的更多详情。
点击节点标签页。
点击要调整其大小的节点池的名称。
点击
调整大小。在节点字段中,输入节点池中所需的节点数,然后点击完成。
点击
以返回到上一页。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
替换以下内容:
USER_CLUSTER_KUBECONFIG
:用户集群 kubeconfig 文件的路径NODE_POOL_NAME
:您调整大小的节点池的名称。
问题排查
请参阅排查集群创建和升级问题。