分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

kubernetes flannel 网卡绑定错误,故障排查

发布时间:2023-09-06 02:34责任编辑:傅花花关键词:kubernetes

kubernetes 新加了个node,状态Ready,但调度过去的任务,都执行异常

查看异常节点日志

`Error adding net work: open run/flannel/subnet.env no such file or directory`

flannel 有问题

环境里flannel也是在容器里启动的,查看flannel,果然新节点的flannel服务没有起来

kbs get pods
kube-flannel-ds-28rh8 ?????????????????0/1 ??????CrashLoopBackOff ??7 ????????1h

追查flannel启动日志

kbs logs --tail 10 -f kube-flannel-ds-28rh8
I1213 07:44:58.471264 ??????1 main.go:201] Could not find valid interface matching en1: failed to find IPv4 address for interface en1
E1213 07:44:58.471366 ??????1 main.go:225] Failed to find interface to use that matches the interfaces and/or regexes provided

interface en1 网卡问题

ifcofing 查看

原来这个节点的ip绑在en2上

再看其他节点运行正常的flannel,也是指向的en1

/opt/bin/flanneld --ip-masq --kube-subnet-mgr --iface=en1

问题已经定位到

k8s集群原来机器的ip都在en1上,flannel节点启动设置的网卡都在en1,新加的这台节点ip却在en2上,以en1启动则失败

查看flannel的配置
kubectl -n kube-system get ds kube-flannel-ds -o yaml
...
?????containers:
?????- args:
???????- --ip-masq
???????- --kube-subnet-mgr
???????- --iface=en1
... ???????
果然这里也是en1

运维比较给力,10分就换好了网卡,服务正常恢复

如果无法更换网卡则需改个iface=en1这个参数

flannel如果在宿主机上,改宿主机的设置即可,但这里的flannel都是在容器内启动的

为了通用把
--iface=en1
改为(192.168.1.255是子网绑定的ip)
--iface=$(ip add |grep 192.168.1.255 |awk ‘{print $7}‘)

需要改的地方就是如何把有效的网卡拿出来

但这个方式通用性还是不太好

更复杂的通用办法就是写个复杂的sh,加入sh打成镜象或把sh映射到容器里,用sh替换启动容器的命令

kubernetes flannel 网卡绑定错误,故障排查

原文地址:https://www.cnblogs.com/zihunqingxin/p/10461020.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved