K8S Flannel Pod 无法启动系列问题

问题描述

某个/某几个 节点上的 Flannel Pod 一直无法启动(kube-flannel 命名空间下的一个 ds)

no such file or directory

Failed to create pod sandbox: rpc error: code = Unknown desc = failed to  set up sandbox container "5 │ 4b27e80cc6741f64956519501e1d955a3f39eecdeefdbe25548902d72ac2a74"  network for pod "iaas-agent-m2l7w": networkPlugin cni failed to set up  pod "iaas-agent-m2l7w_kubeiaas" network: loadFlannelSubnetEnv fail │ ed: open /run/flannel/subnet.env: no such file or directory

表示没有 /run/flannel/subnet.env
需要创建这个文件,并填入相关内容(具体内容参考集群配置):

vi /run/flannel/subnet.env
# ---------
FLANNEL_NETWORK=10.244.0.0/16
FLANNEL_SUBNET=10.244.4.1/24
FLANNEL_MTU=1450
FLANNEL_IPMASQ=true

删除 pod 让它自动重启

i/o timeout

Failed to create SubnetManager: error retrieving pod spec for  'kube-flannel/kube-flannel-ds-bvf6k': Get  "https://10.96.0.1:443/api/v1/namespaces/k │ ube-flannel/pods/kube-flannel-ds-bvf6k": dial tcp 10.96.0.1:443: i/o  timeout

这是说明 flannel 无法与 api-server 所在 master 节点通信,需要删除 ds 并修改 kube-flannel.yml 再重新部署:
POD_NAMESPACE 这一环境变量下再补充两项,

在这里插入图片描述

- name: KUBERNETES_SERVICE_HOST
  value: "192.168.1.107" # ip address of the host where kube-apiservice is running
- name: KUBERNETES_SERVICE_PORT
  value: "6443"

ImagePullBackOff

拉不下来 flannel 的镜像,可以直接使用国内镜像源。在此提供 free4lab 的镜像源:

在这里插入图片描述

registry.cn-beijing.aliyuncs.com/free4lab/mirrored-flannelcni-flannel-cni-plugin:v1.1.0
registry.cn-beijing.aliyuncs.com/free4lab/mirrored-flannelcni-flannel:v0.19.0

“cni0” already has an IP address different from

问题出现在给 Pod 分配 IP 上,意思是 cni0 的 IP 不同于 10.244.X.1/24
查看各个 IP,一般

  • flannel.X10.244.X.0/24
  • cni010.244.X.1/24

可以使用 IP 命令直接修改

sudo ip address flush dev cni0
sudo ip address change 10.244.X.1/24 dev cni0

或是删除 cni0 让 K8S 自动重建

sudo ip link set cni0 down
sudo ip link delete cni0

kube-flannel.yml

提供一版规避了上面问题的由 “自邮之翼 / free4inno” 提供的 flannel.yml

kube-flannel-free4lab.yml

由 “自邮之翼 / free4inno” 提供的 flannel.yml:

  1. 增加了KUBERNETES_SERVICE_HOST & KUBERNETES_SERVICE_PORT 字段,请手动修改配置!
  2. 修改了镜像源,由 free4inno 团队提供的国内阿里镜像源
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值