1.问题描述
书接上回,我们在解决kubectl不断重启的时候引入了Flannel 网络插件,但是一上来就报错,
2.问题解决
自己的思路:照例开始检查
1.先检查一下目前Flannel的pod
kubectl get pods --all-namespaces
2.检查 Flannel的pod的日志
kubectl describe pod kube-flannel-ds-4d456 -n kube-flannel
kubectl logs kube-flannel-ds-4d456 -c kube-flannel -n kube-flannel
找到了主要的问题所在,提示我们Error registering network: failed to acquire lease: node "master" pod cidr not assigned
3.分析问题
Error registering network: failed to acquire lease: node "master" pod cidr not assigned
这表明 Kubernetes 的控制平面(包括 kube-controller-manager
)无法为节点分配 Pod CIDR。需要确保 kube-controller-manager
能够获取到正确的 Pod CIDR。
解决方法
1. 为 kube-controller-manager
设置 Pod CIDR
你可以通过编辑 kube-controller-manager
的 kubeadm
配置来确保 Pod CIDR 正确设置。具体步骤如下:
-
检查
kubeadm
配置:确保在kubeadm
初始化时已经指定了--pod-network-cidr
参数。如果没有指定 Pod CIDR,可以通过以下方式为kubeadm
初始化指定该参数:kubeadm init --pod-network-cidr=10.244.0.0/16
这会为 Kubernetes 集群中的 Pod 分配一个 CIDR 范围。根据网络环境,CIDR 范围可能会有所不同。
-
修改 Kubernetes 控制平面节点的配置: 如果集群