我有一个由多个节点和一个GoogleCloud Redis Memorystore组成的GoogleCloud Kubernetes集群。这些节点上分布着一个Pod的副本,其中包含一个需要连接到Redis Memorystore的容器。我注意到一个节点无法连接到Redis,即该节点上的Pod中的任何容器都无法连接到Redis。
Redis Memorystore具有以下属性:
10.0.6.12
10.0.6.8/29
(10.0.6.8
-10.0.6.15
)无法与Redis建立连接的节点具有以下属性:
10.132.0.5
10.0.6.0/24
(10.0.6.0
-10.0.6.255
)我认为此问题是由Memorystore和此节点的IP范围重叠造成的。这个假设正确吗?
如果这是问题,我想更改节点的IP范围。
我试图通过在节点配置中编辑spec.podCIRD
来做到这一点:
$ kubectl edit node <node-name>
但是这不起作用,并导致错误消息:
# * spec.podCIDR: Forbidden: node updates may not change podCIDR except from "" to valid
# * []: Forbidden: node updates may only change labels, taints, or capacity (or configSource, if the DynamicKubeletConfig feature gate is enabled)
还有另一种方法来更改现有Kubernetes节点的IP范围吗?如果可以,怎么办?
有时候我需要暂时增加集群中的Pod数量。执行此操作时,我想阻止Kubernetes创建IP范围为10.0.6.0/24
的新节点。
是否可以告诉Kubernetes集群不要创建IP范围为10.0.6.0/24
的新节点?如果可以,怎么办?
谢谢!
答案 0 :(得分:2)
不适用于节点。在设置新集群的初始步骤中安装网络覆盖时,就会定义podCidr。
对于集群是。但这并不容易。您必须更改整个集群中网络覆盖的podCidr。这是一个棘手的过程,但是如果这样做,您最好部署一个新集群。请记住,某些网络覆盖图需要非常特定的PodCidr。例如,印花棉布需要192.168.0.0/16
您可以:
希望有帮助!