我正在运行 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也是不能解析。
这是什么原因造成的?
这是由于缺少
--network-plugin=cni
造成的,追加上,就可以了。vim /etc/systemd/system/cri-docker.service
在ExecStart后面追加,如:
ExecStart=/usr/local/bin/cri-dockerd --container-runtime-endpoint fd:// --network-plugin=cni
感谢,加上之后网络全部正常了!
你的答案