更改Kubernetes集群IP地址范围

时间:2018-12-14 15:23:57

标签: kubernetes

我们已经设置了具有特定service-cluster-ip-range的Kubernetes集群。现在,此范围已被IP地址完全使用,因此我们无法创建新服务。尝试这样做时,出现以下错误:

Warning  ProvisioningFailed  2s    persistentvolume-controller  Failed to provision volume with StorageClass "glusterfs-storage": failed to create volume: failed to create endpoint/service default/glusterfs-dynamic-gluster-vol-mongodb-data-03: error creating service: Internal error occurred: failed to allocate a serviceIP: range is full

我们必须增加或更改群集IP范围。

我们没有找到有关如何更改群集IP范围的任何文档。那有可能吗?将会采取什么步骤?

谢谢。

2 个答案:

答案 0 :(得分:1)

您可以通过修改 /etc/kubernetes/manifest/kube-controller-manager.yaml 文件来更改集群 ip 服务范围。但是,您应该封锁受影响的节点并停止所有删除所有服务/部署,以便它们可以重新创建。您可能需要更改 cni 插件的设置。我使用 Calico,它需要更改集群 CIDR 而不是服务 ip 范围。更改端口后;一定要重启kubelet。

答案 1 :(得分:0)

选中official documentation

Weave Net和Docker的默认配置都使用Private Networks,其地址在公共Internet上从未发现过,从而减少了IP重叠的机会。但是,可能是您或您的托管服务提供商在相同范围内使用了其中一些私有地址,这将导致冲突。

如果在weave launch之后,出现以下错误消息:

Network 10.32.0.0/12 overlaps with existing route 10.0.0.0/8 on host.
ERROR: Default --ipalloc-range 10.32.0.0/12 overlaps with existing route on host.
You must pick another range and set it on all hosts.

如消息所示,Weave Net希望使用的默认范围是10.32.0.0/12-12位前缀,其中所有地址均以位模式000010100010开头,或者以十进制表示从10.32.0.0到10 10.47.255.255。

但是,您的主机正在使用10.0.0.0/8的路由,该路由重叠,因为前8位相同。在这种情况下,如果将默认网络用于类似10.32.5.6的地址,则内核将永远不会确定这是否意味着10.32.0.0/12的Weave Net网络或10.0.0.0/8的托管网络。 / p>

如果您确定所需的地址未被使用,则在所有主机上的命令行参数中将--ipalloc-range的范围显式设置为weave launch,以强制Weave Net使用该范围,即使重叠。否则,您可以选择其他范围,最好是Private Networks的另一个子集。例如172.30.0.0/16。