我想更改Kubernetes Pod Ips,因为我们公司中有一个子网,该子网与kubernetes运行在同一子网中。
我用以下内容创建了一个kubernetes-config文件(只是一个片段):
kind: ClusterConfiguration
kubernetesVersion: v1.13.4
networking:
dnsDomain: cluster.local
podSubnet: "192.150.0.0/19"
serviceSubnet: 192.150.0.0/19
scheduler: {}
然后,我使用额外的参数IPALLOC_RANGE 192.150.0.0/19启动Weave Net。
该池中的Pod具有正确的ip地址,但是我无法从群集中彼此连接而不是不在群集外部与Pod相连。因此,我们在kubernetes集群之外也有服务器,我也无法连接到服务器。
答案 0 :(得分:0)
您的目标是什么?要使用现有的Pod重新配置当前群集,还是要使用其他覆盖网络重新创建群集?
我在您的ClusterConfiguration
中看到子网混乱:
请注意,podSubnet
和serviceSubnet
不应相同。您必须使用不同的范围。
例如:
kind: ClusterConfiguration
kubernetesVersion: v1.13.4
networking:
serviceSubnet: "10.96.0.0/12"
podSubnet: "10.100.0.1/24"
dnsDomain: "cluster.local
controlPlaneEndpoint: "10.100.0.1:6443"
...
还要检查@Janos在kubernetes set service cidr and pod cidr the same主题中提供的答案。
答案 1 :(得分:0)
您不应将服务IP与Pod IP混合使用。服务IP是虚拟的,并且由kubernetes在内部用于发现您的(服务)容器。
如果我将serviceSubnet和weave网络子网配置为相同
您不应该对它们进行相同的配置!编织子网本质上是Pod CIDR
Pod到Pod的通信应通过k8s服务进行。 Pod中的容器到容器应该通过localhost完成。