本文档介绍如何使用 kubeception 将 1.29 版或更高版本的用户集群迁移到 Controlplane V2。
1.29:预览版
1.28:不可用
1.16:不可用
用户集群控制平面简介
在 Google Distributed Cloud 1.13 版之前,用户集群的控制平面在管理员集群中的一个或多个节点上运行。这种控制平面称为 kubeception。在 1.13 版中,为新用户集群引入了 Controlplane V2。启用 Controlplane V2 后,用户集群的控制平面会在用户集群中运行。
Controlplane V2 具有以下优势:
故障隔离。管理员集群故障不会影响用户集群。
运维分离。管理员集群升级不会导致用户集群停机。
部署分离。您可以将管理员集群和用户集群放在不同的故障域或地理站点中。例如,位于边缘位置的用户集群可能与管理员集群位于不同的地理位置。
使用要求
如需将用户集群迁移到控制平面 V2,用户集群必须满足以下要求:
用户集群必须为 1.29 或更高版本。管理员集群和节点池可以比用户集群低一个或两个次要版本。如果需要,请升级集群。
用户集群必须启用 Dataplane V2。此字段不可更改,因此如果集群上未启用 Dataplane V2,您无法将其迁移到 Controlplane V2。
用户集群必须配置为使用 MetalLB 或手动负载均衡器。如果用户集群使用的是 SeeSaw 负载均衡器,您可以将其迁移到 MetalLB。
查看 IP 地址规划文档,并确保您有足够的 IP 地址供用户集群的控制平面节点使用。控制平面节点需要静态 IP 地址,并且您需要一个额外的 IP 地址来获取新的控制平面虚拟 IP (VIP)。
更新用户集群配置文件
对现有用户集群配置文件进行以下更改:
将
enableControlplaneV2
设置为 true。(可选)将控制平面 V2 用户集群的控制平面设为高可用性 (HA)。如需从非高可用性集群更改为高可用性集群,请将
masterNode.replicas
从 1 更改为 3。将用户集群控制平面节点的一个或多个静态 IP 地址添加到
network.controlPlaneIPBlock.ips
部分。从管理员集群 IP 块文件中移除 kubeception 用户集群控制平面节点的一个或多个 IP 地址。在
network.controlPlaneIPBlock
部分中填写网络掩码和网关。如果
network.hostConfig
部分为空,请进行填写。如果用户集群使用手动负载均衡,请将负载均衡器配置为包含数据平面流量的控制平面节点 IP:
- (
ingressVIP
:80) -> (CP_NODE_IP_ADDRESSES:ingressHTTPNodePort
) - (
ingressVIP
:443) -> (CP_NODE_IP_ADDRESSES:ingressHTTPSNodePort
)
- (
使用控制平面 VIP 的新 IP 地址更新
loadBalancer.vips.controlPlaneVIP
字段。除非为迁移更新集群,否则上述所有字段都是不可变的。请务必仔细检查所有设置。
运行
gkectl diagnose cluster
,然后修复该命令发现的任何问题。gkectl diagnose cluster --kubeconfig=ADMIN_CLUSTER_KUBECONFIG \ --cluster-name=USER_CLUSTER_NAME
请替换以下内容:
ADMIN_CLUSTER_KUBECONFIG
:管理员集群 kubeconfig 文件的路径CLUSTER_NAME
:用户集群的名称。
调整手动负载均衡器配置
如果用户集群使用手动负载均衡,请执行本部分中的步骤。 否则,请跳过此部分。
与为 CPv2 用户集群配置负载均衡器类似,对于您在 network.controlPlaneIPBlock 部分中指定的三个新控制平面节点 IP 地址,每个地址均在负载均衡器中配置映射:
- (ingressVIP:80) -> (NEW_NODE_IP_ADDRESS:ingressHTTPNodePort)
- (ingressVIP:443) -> (NEW_NODE_IP_ADDRESS:ingressHTTPNodePort)
更新集群
运行以下命令,将集群迁移到 Controlplane V2:
gkectl update cluster \ --kubeconfig ADMIN_CLUSTER_KUBECONFIG \ --config USER_CLUSTER_CONFIG
请替换以下内容:
ADMIN_CLUSTER_KUBECONFIG
:管理员集群 kubeconfig 文件的路径。USER_CLUSTER_CONFIG
:用户集群配置文件的路径。