背景:
centos
安装kubernetes 后,并初始化mater
执行:
kubectl get pod -A
dns 状态为 ContainerCreating
看下日志:
kubectl logs coredns-6d8c4cb4d-6b5k2 -n kube-system
Warning FailedCreatePodSandBox 22m kubelet Failed to create pod sandbox: rpc error: code = Unknown desc = failed to set up sandbox container “54846981daca512b465b9f45cabfcf4925bc58be8f3e08a403c9f2b16380bf11” network for pod “coredns-6d8c4cb4d-6b5k2”: networkPlugin cni failed to set up pod “coredns-6d8c4cb4d-6b5k2_kube-system” network: failed to delegate add: failed to set bridge addr: “cni0” already has an IP address different from 10.96.0.1/24
Warning FailedCreatePodSandBox 22m kubelet Failed to create pod sandbox: rpc error: code = Unknown desc = failed to set up sandbox container “af99fa1e894c368ee7b252d792829065ef31b2bb3bc71f90e2d7fa00259c7218” network for pod “coredns-6d8c4cb4d-6b5k2”: networkPlugin cni failed to set up pod “coredns-6d8c4cb4d-6b5k2_kube-system” network: failed to delegate add: failed to set bridge addr: “cni0” already has an IP address different from 10.96.0.1/24
Normal SandboxChanged 8m3s (x411 over 23m) kubelet Pod sandbox changed, it will be killed and re-created.
Warning FailedCreatePodSandBox 3m2s (x540 over 22m) kubelet (combined from similar events): Failed to create pod sandbox: rpc error: code = Unknown desc = failed to set up sandbox container “922a94bed6b5fc4d4bc2015a97af9242f2c0c062380a7d42e6824518ee05bfbe” network for pod “coredns-6d8c4cb4d-6b5k2”: networkPlugin cni failed to set up pod “coredns-6d8c4cb4d-6b5k2_kube-system” network: failed to delegate add: failed to set bridge addr: “cni0” already has an IP address different from 10.244.0.1/24
自己初始化master的命令为:
sudo kubeadm init --pod-network-cidr=10.244.0.0/16 --image-repository registry.aliyuncs.com/google_containers
也就是pod 的网络范围为: 10.244.0.0/16
注意:
/etc/kubernetes/manifests/kube-controller-manager.yaml 中,也有以下参数设置pod的网络范围:
- --cluster-cidr=10.244.0.0/16
在看下本地虚拟网卡cni0的的网络ip:
ifconfig
解决方法:
方法1: 修改 cni0 的 ip段:
使用 ip address
命令,具体使用可参考相关语法
方法2: 将这个错误的网卡删除掉,系统会自动重建。
下面我们删除错误的cni0,然后让它自己重建,操作过程如下:
sudo ifconfig cni0 down
sudo ip link delete cni0
结果:
有关cni 介绍:
https://www.jianshu.com/p/88062fa25083
https://zhuanlan.zhihu.com/p/110648535