Kubernetes v1.33 [stable](默认启用)本文介绍如何重新配置集群中分配的默认 Service IP 范围。
你必须拥有一个 Kubernetes 的集群,且必须配置 kubectl 命令行工具让其与你的集群通信。 建议运行本教程的集群至少有两个节点,且这两个节点不能作为控制平面主机。 如果你还没有集群,你可以通过 Minikube 构建一个你自己的集群,或者你可以使用下面的 Kubernetes 练习环境之一:
你的 Kubernetes 服务器版本必须不低于版本 v1.33.要获知版本信息,请输入 kubectl version.
本文解释了如何管理 Kubernetes 集群中的 Service IP 地址范围,这也会影响集群针对不同 Service 所支持的 IP 协议族。
可用于 Service ClusterIP 的 IP 协议族由传递给 kube-apiserver 的 --service-cluster-ip-range
参数决定。要更好地了解 Service IP 地址分配,请参考
Service IP 地址分配追踪文档。
自 Kubernetes 1.33 起,为集群所配置的 Service IP 协议族会通过名为 kubernetes 的 ServiceCIDR 对象反映。
Kubernetes 的 ServiceCIDR 由第一个启动的 kube-apiserver 实例根据其 --service-cluster-ip-range
参数配置创建。为了确保集群行为一致,所有 kube-apiserver 实例必须使用相同的
--service-cluster-ip-range 配置,其取值需与默认的 kubernetes ServiceCIDR 对象保持一致。
我们可以将 ServiceCIDR 的重新配置分为以下几种情形:
kubernetes.default Service。
如果主 IP 协议族也发生变化,则更为复杂,可能需要修改多个集群组件(如 kubelet、网络插件等)
以匹配新的主 IP 协议族。重新配置默认 ServiceCIDR 需要集群运维人员、管理员或管理集群生命周期的软件执行一系列手动步骤。 这些通常包括:
--service-cluster-ip-range 参数。kubernetes.default Service,以便从新的 Service CIDR 获取 IP 地址。以下步骤描述了受控的重新配置过程,重点是完全替换默认 ServiceCIDR 并重新创建 kubernetes.default Service:
--service-cluster-ip-range 启动 kube-apiserver。kubernetes ServiceCIDR 标记为删除(由于存在 IP 和 Finalizer,会处于 Pending 状态)。
这将阻止从旧的范围分配新的 IP。kubernetes.default Service。新的 kube-apiserver 将在新的
ServiceCIDR 范围内重新创建此 Service。