当前位置: 首页 > news >正文

K8s集群里 中Flannel的状态显示为CrashLoopBackOff 时

1.问题:

Flannel的状态显示为CrashLoopBackOff 时

[root@master keepalived]# kubectl get pods -A
NAMESPACE      NAME                              READY   STATUS              RESTARTS         AGE
kube-flannel   kube-flannel-ds-bpqxg             0/1     CrashLoopBackOff    1 (14s ago)      60s
kube-flannel   kube-flannel-ds-gt9m4             0/1     CrashLoopBackOff    1 (44s ago)      59s
kube-flannel   kube-flannel-ds-lmnxz             0/1     CrashLoopBackOff    1 (44s ago)      59s
kube-flannel   kube-flannel-ds-t2h2m             0/1     CrashLoopBackOff    1 (14s ago)      60s
kube-flannel   kube-flannel-ds-vgsjq             0/1     CrashLoopBackOff    1 (54s ago)      59s
kube-system    coredns-65c54cc984-5s2rc          0/1     ContainerCreating   0                3h43m
kube-system    coredns-65c54cc984-gv9zv          0/1     ContainerCreating   0                3h43m
kube-system    etcd-master                       1/1     Running             14               3h43m
kube-system    etcd-master2                      1/1     Running             0                3h41m
kube-system    etcd-master3                      1/1     Running             0                3h35m
kube-system    kube-apiserver-master             1/1     Running             0                3h43m
kube-system    kube-apiserver-master2            1/1     Running             0                3h41m
kube-system    kube-apiserver-master3            1/1     Running             0                3h35m
kube-system    kube-controller-manager-master    1/1     Running             1 (3h41m ago)    3h43m
kube-system    kube-controller-manager-master2   1/1     Running             0                3h41m
kube-system    kube-controller-manager-master3   1/1     Running             0                3h35m
kube-system    kube-proxy-26n24                  1/1     Running             0                3h23m
kube-system    kube-proxy-44mr4                  1/1     Running             0                3h22m
kube-system    kube-proxy-kg22m                  1/1     Running             0                3h36m
kube-system    kube-proxy-tj6nw                  1/1     Running             0                3h43m
kube-system    kube-proxy-xfmw9                  1/1     Running             0                3h41m
kube-system    kube-scheduler-master             1/1     Running             19 (3h41m ago)   3h43m
kube-system    kube-scheduler-master2            1/1     Running             0                3h41m
kube-system    kube-scheduler-master3            1/1     Running             0                3h35m

2. 查看 kube-flannel 日志

可以通过 kubectl logs 命令查看 kube-flannel 的日志,找出它为何处于 CrashLoopBackOff 状态。

kubectl logs <flannel-pod-name> -n kube-flannel
#将 <flannel-pod-name> 替换为实际的 kube-flannel Pod 名称,如 kube-flannel-ds-7qlgm。

从日志中可以看到,kube-flannel 出现了以下错误:

Error registering network: failed to acquire lease: subnet "10.244.0.0/16" specified in the flannel net config doesn't contain "172.16.4.0/24" PodCIDR of the "node1" node

这意味着 Flannel 的网络配置子网 10.244.0.0/16 与 node1 节点的 PodCIDR 172.16.4.0/24 不匹配。

3. 检查 Flannel ConfigMap 配置

确保 Flannel ConfigMap 的配置与集群的 PodCIDR 配置相匹配。可以使用以下命令查看 ConfigMap 的内容:

[root@master keepalived]# kubectl get configmap kube-flannel-cfg -n kube-flannel -o yaml
apiVersion: v1
data:cni-conf.json: |{"name": "cbr0","cniVersion": "0.3.1","plugins": [{"type": "flannel","delegate": {"hairpinMode": true,"isDefaultGateway": true}},{"type": "portmap","capabilities": {"portMappings": true}}]}net-conf.json: |{"Network": "10.244.0.0/16","EnableNFTables": false,"Backend": {"Type": "vxlan"}}
kind: ConfigMap
metadata:annotations:kubectl.kubernetes.io/last-applied-configuration: |{"apiVersion":"v1","data":{"cni-conf.json":"{\n  \"name\": \"cbr0\",\n  \"cniVersion\": \"0.3.1\",\n  \"plugins\": [\n    {\n      \"type\": \"flannel\",\n      \"delegate\": {\n        \"hairpinMode\": true,\n        \"isDefaultGateway\": true\n      }\n    },\n    {\n      \"type\": \"portmap\",\n      \"capabilities\": {\n        \"portMappings\": true\n      }\n    }\n  ]\n}\n","net-conf.json":"{\n  \"Network\": \"10.244.0.0/16\",\n  \"EnableNFTables\": false,\n  \"Backend\": {\n    \"Type\": \"vxlan\"\n  }\n}\n"},"kind":"ConfigMap","metadata":{"annotations":{},"labels":{"app":"flannel","k8s-app":"flannel","tier":"node"},"name":"kube-flannel-cfg","namespace":"kube-flannel"}}creationTimestamp: "2024-08-09T02:57:06Z"labels:app: flannelk8s-app: flanneltier: nodename: kube-flannel-cfgnamespace: kube-flannelresourceVersion: "1964"uid: 0b36f97e-7143-4966-9f73-c34aed3e6792

4.确认 PodCIDR 配置

确保集群中的 PodCIDR 配置与你的 Flannel Network 配置匹配。你可以在 Master 节点上查看 PodCIDR 配置:

[root@master keepalived]# kubectl get nodes -o yaml | grep podCIDRpodCIDR: 172.16.0.0/24podCIDRs:podCIDR: 172.16.1.0/24podCIDRs:podCIDR: 172.16.2.0/24podCIDRs:podCIDR: 172.16.4.0/24podCIDRs:podCIDR: 172.16.3.0/24podCIDRs:

5. 更新 Flannel ConfigMap

编辑 kube-flannel-cfg ConfigMap:

kubectl edit configmap kube-flannel-cfg -n kube-flannel

将 net-conf.json 中的 Network 字段修改为 172.16.0.0/12(这包括了所有的 PodCIDR 范围):

{"Network": "172.16.0.0/12","EnableNFTables": false,"Backend": {"Type": "vxlan"}
}

保存并退出编辑器。

6. 重新启动 Flannel DaemonSet

更新配置后,重新启动 Flannel DaemonSet 以应用更改:

[root@master keepalived]# kubectl rollout restart daemonset kube-flannel-ds -n kube-flannel
daemonset.apps/kube-flannel-ds restarted

7. 验证 Flannel Pods 状态

检查 Flannel Pods 的状态,确保它们已成功启动:

[root@master keepalived]# kubectl get pods -n kube-flannel
NAME                    READY   STATUS    RESTARTS   AGE
kube-flannel-ds-2vmjl   1/1     Running   0          4s
kube-flannel-ds-6jjp5   1/1     Running   0          4s
kube-flannel-ds-785b7   1/1     Running   0          4s
kube-flannel-ds-846xc   1/1     Running   0          4s
kube-flannel-ds-98rxw   1/1     Running   0          4s

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Stable Diffusion绘画 | 提示词基础原理
  • 深度学习线性代数基础
  • 坐标变换矩阵
  • CentOS7 VMware虚拟机基于NAT配置网络IP
  • 【机器学习sklearn实战】岭回归、Lasso回归和弹性网络
  • PyCharm 2024.1 总结和最新变化
  • 大家不推荐开放式耳机?开放式耳机的优缺点
  • EasyExcel实现100w数据导入导出
  • React中,className属性自定义组件不生效的问题
  • 全面介绍 Apache Doris 数据灾备恢复机制及使用示例
  • 循环神经网络三
  • uniapp版本更新除了plus.runtime.getProperty的解决办法
  • XHTML 简介
  • 单元测试注解:@ContextConfiguration
  • 企微SCRM在私域流量运营中的痛点解决之道
  • Bootstrap JS插件Alert源码分析
  • Brief introduction of how to 'Call, Apply and Bind'
  • C# 免费离线人脸识别 2.0 Demo
  • C++类的相互关联
  • E-HPC支持多队列管理和自动伸缩
  • export和import的用法总结
  • Java 11 发布计划来了,已确定 3个 新特性!!
  • NSTimer学习笔记
  • 关于 Cirru Editor 存储格式
  • 将 Measurements 和 Units 应用到物理学
  • 强力优化Rancher k8s中国区的使用体验
  • 使用 QuickBI 搭建酷炫可视化分析
  • 哈罗单车融资几十亿元,蚂蚁金服与春华资本加持 ...
  • # Redis 入门到精通(一)数据类型(4)
  • #162 (Div. 2)
  • (1/2) 为了理解 UWP 的启动流程,我从零开始创建了一个 UWP 程序
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (4)(4.6) Triducer
  • (BAT向)Java岗常问高频面试汇总:MyBatis 微服务 Spring 分布式 MySQL等(1)
  • (DFS + 剪枝)【洛谷P1731】 [NOI1999] 生日蛋糕
  • (LeetCode 49)Anagrams
  • (NSDate) 时间 (time )比较
  • (备份) esp32 GPIO
  • (多级缓存)多级缓存
  • (三) diretfbrc详解
  • . Flume面试题
  • .axf 转化 .bin文件 的方法
  • .gitignore文件使用
  • .net core IResultFilter 的 OnResultExecuted和OnResultExecuting的区别
  • .NET delegate 委托 、 Event 事件
  • .Net Framework 4.x 程序到底运行在哪个 CLR 版本之上
  • .NET/C# 利用 Walterlv.WeakEvents 高性能地中转一个自定义的弱事件(可让任意 CLR 事件成为弱事件)
  • .NET/C# 使用 #if 和 Conditional 特性来按条件编译代码的不同原理和适用场景
  • .NET企业级应用架构设计系列之应用服务器
  • .net生成的类,跨工程调用显示注释
  • .net使用excel的cells对象没有value方法——学习.net的Excel工作表问题
  • .NET学习教程二——.net基础定义+VS常用设置
  • @data注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • @FeignClient注解,fallback和fallbackFactory
  • @manytomany 保存后数据被删除_[Windows] 数据恢复软件RStudio v8.14.179675 便携特别版...