使用 Kubeadm 安装 K8s 集群,在安装 flannel
网络插件后,发现 kube-flannel-ds
一直处于 CrashLoopBackOff
状态:
[root@test-129-70 k8s]# kubectl get po -A
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system coredns-6fbb9d899b-qkwd2 0/1 Pending 0 102s
kube-system coredns-6fbb9d899b-xswqr 0/1 Pending 0 102s
kube-system etcd-test-129-70 1/1 Running 0 41s
kube-system kube-apiserver-test-129-70 1/1 Running 0 36s
kube-system kube-controller-manager-test-129-70 1/1 Running 0 51s
kube-system kube-flannel-ds-amd64-rp2pd 0/1 CrashLoopBackOff 0 90s
kube-system kube-proxy-gjpsz 1/1 Running 0 102s
kube-system kube-scheduler-test-129-70 1/1 Running 0 60s
使用命令:kubectl -n kube-system logs kube-flannel-ds-amd64-rp2pd
查看日志,发现包含如下错误信息:
Error registering network: failed to acquire lease: node "test-129-70" pod cidr not assigned
则问题是出在默认的网段上,需要判断在 kubeadm init
初始化的时候,是否没有添加 --pod-network-cidr=10.10.0.0./16
参数,这里的 10.10.0.0/16
根据各自的实际情况定义,不冲突就好。
另外:如果使用的是 flannel
,在 apply
前编辑一下 kube-flannel.yml
,在第 128
行:
126 net-conf.json: |
127 {
128 "Network": "10.244.0.0/16",
129 "Backend": {
130 "Type": "vxlan"
131 }
132 }
将"Network": "10.244.0.0/16"
的ip段改为初始化时的 10.10.0.0/16
,否则node之前的 Cluster IP
可能会不通。