kubernetes分配pods的IP是错的

what 发表于: 2022-08-16   最后更新时间: 2022-08-16 18:55:00   466 游览

我正在运行 kubernetes,假设 pod 网络 cidr 为 10.244.0.0/16。

kubeadm init --control-plane-endpoint "我的ip:6443" --upload-certs --pod-network-cidr=10.244.0.0/16
$ kubectl get nodes -o kubectl get nodes -o jsonpath='{.items[*].spec.podCIDR}'
10.244.0.0/24 10.244.1.0/24 10.244.2.0/24 10.244.3.0/24 10.244.4.0/24 10.244.5.0/24

# cat /run/flannel/subnet.env 
FLANNEL_NETWORK=10.244.0.0/16
FLANNEL_SUBNET=10.244.0.1/24
FLANNEL_MTU=1450
FLANNEL_IPMASQ=true

但是,我创建的所有 pod 都获得了 172.17.0.0/16 内的 IP。

$ kubectl get pods -o wide
NAME                                   READY   STATUS             RESTARTS   AGE   IP            NODE         NOMINATED NODE   READINESS GATES
busybox1                               1/1     Running            1          13m   172.17.0.11   k8s-node-1   <none>           <none>
debain-shell-547f8fc54b-v8p99          0/1     ImagePullBackOff   0          27m   172.17.0.3    k8s-node-1   <none>           <none>
nginx-deployment-ex-54f57cf6bf-k55nn   1/1     Running            1          27m   172.17.0.5    k8s-node-1   <none>           <none>
nginx-deployment-ex-54f57cf6bf-q2khx   1/1     Running            1          27m   172.17.0.9    k8s-node-1   <none>           <none>
nginx-deployment-ex-54f57cf6bf-r8b7v   1/1     Running            1          27m   172.17.0.7    k8s-node-1   <none>           <none>

coredns也是不能解析。

这是什么原因造成的?

发表于 2022-08-16

这是由于缺少--network-plugin=cni造成的,追加上,就可以了。

vim /etc/systemd/system/cri-docker.service

在ExecStart后面追加,如:

ExecStart=/usr/local/bin/cri-dockerd --container-runtime-endpoint fd:// --network-plugin=cni
what -> 半兽人 1年前

感谢,加上之后网络全部正常了!

你的答案

查看kubernetes相关的其他问题或提一个您自己的问题