在调整 rke 集群的 CIDR 时,遇到了如下报错,导致集群创建失败:
|
|
cluster.yaml 相关配置如下:
|
|
问题出在 CIDR 的掩码大小。该掩码由 --node-cidr-mask-size
参数设置,必须大于(即 IP 范围更小)集群 CIDR 的掩码。默认值为 24
,而上述配置为 25
,比默认值大(IP 范围溢出),因此报错。
可以通过如下方式在 extra_args
中修改 --node-cidr-mask-size
:
|
|
设置为 25
、26
等数字后,集群即可正常创建。
关于掩码大小与每个节点可用 Pod 数的关系:考虑到 Pod 的增删,实际可用的 Pod 数大约是分配 IP 数的一半。
例如,cluster_cidr 掩码为 25
时,集群级别的 IP 数为 128
。
单节点时,--node-cidr-mask-size
也设为 25,则分配 128
个 IP,可创建约 33
~64
个 Pod。
三节点时,每个节点最多可用 IP 为 42
,此时需将 --node-cidr-mask-size
设为 27
,可用 Pod 数约为 9
~16
。
系统级 Pod(如 coredns)也有约 10
个,如果设为 28
,业务 Pod 的 IP 就不够用了。
此外,还需相应设置 max-pods:
|
|
参考: https://cloud.google.com/kubernetes-engine/docs/how-to/flexible-pod-cidr