1

我的测试集群中的服务的免费 IP 用完了,我想将 service-cluster-ip-range 更改为新的 CIDR。我想知道它是否受支持以及如何做到这一点。

运行 K8s 1.12.3、CoreDNS 和 Calico

在我调查这个问题的过程中,我发现没有可以提供任何帮助的官方文档。

我修改了 kube-apiserver 和 kube-controller-manager 的 --service-cluster-ip-range 以匹配新范围。

然后我在所有 master 上重新启动 kube-apiserver kube-controller-manager kube-scheduler 并添加了一个新服务

似乎新服务是使用新范围创建的,并且保留了所有旧服务,包括集群 IP。即使在 att 全集群重新启动后(只是为了尝试),旧服务和新服务都可以工作。

4

2 回答 2

0

基于这个github 问题和我能够找到的其他资源。另一个来自 Calico文档。这是 Docker EE 的详细说明,但我认为它会有所帮助。

所以是的,有可能,真正的问题是什么会停止工作(多久?)以及你能承受多少停机时间。互联网上关于重新创建集群的建议中有很多答案,如果可能的话,我可能会听取该建议。似乎添加新的 CIDR 然后停用旧的 CIDR 是要走的路。

如果这不可行,您可以尝试创建另一个测试集群并在其中尝试这些更改,看看可能出了什么问题。还要记住重新创建集群中存在的节点(缩小到 0,以便重新创建机器)。

于 2019-07-02T15:08:54.373 回答
0

是的,可以为服务 CIDR 自定义 IP 范围。您所做的步骤是正确的。我知道很少有人尝试过这些选项并且正在使用自定义 IP 范围。

于 2019-06-17T12:29:11.827 回答