集群初始化时如果没有指定--pod-network-cidr参数,之后又要安装CNI,就需要修改pod的cidr。

错误信息具体表现为:

kubectl apply -f flannal.yaml 之后,发现flannal的pod一直失败重启,退出的日志为:

Error registering network: failed to acquire lease: node "vb-n2" pod cidr not assigned

这是因为flannal的编排中会指定分配给pod使用的cidr,而如果集群设置与之不符,则会报错。

flannal编排设置如下:

解决方案:

1、修改集群配置

kubectl edit cm kubeadm-config -n kube-system

在networking下添加配置 podSubnet: cidr        此处cidr需要与插件内指定的网段一致。

2、修改静态pod  kube-controller-manager配置

vim /etc/kubernetes/manifests/kube-controller-manager.yaml 

添加启动参数如下:

- --allocate-node-cidrs=true 
- --cluster-cidr=10.244.0.0/16

此处指定后,controller-manger会为集群下的每一个node分配一个子网段,体现在 kubectl get node node1-cluster -o yaml | grep -i cidr

3、如果有安装kube-proxy,需要修改其配置:

kube-proxy  --cluster-cidr

 

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐