0

0

K3s flannel 报 "failed to acquire lease" 导致 IP 分配失败

冰川箭仙

冰川箭仙

发布时间:2026-01-18 20:13:02

|

226人浏览过

|

来源于php中文网

原创

K3s中Flannel因failed to acquire lease启动失败,主因是Lease API不可用、RBAC权限缺失、CNI残留或时间不同步;优先重启k3s服务或清理/etc/cni/net.d/配置即可解决。

k3s flannel 报 \

这是 K3s 使用 Flannel 作为 CNI 插件时的典型问题:Flannel Pod 启动失败,日志中反复出现 failed to acquire lease,导致节点无法获取 PodCIDR,进而无法分配 Pod IP,所有工作负载卡在 Pending 状态。

根本原因:Flannel 依赖 kube-apiserver 和 etcd(或 k3s 内置的 sqlite/etcd)正常提供租约(Lease)能力

Flannel v0.20+ 默认启用 lease 模式(通过 --lease-enable),它会向 Kubernetes 的 coordination.k8s.io/v1 Lease API 创建并续租一个名为 flannel 的 Lease 对象(位于 kube-flannel 命名空间)。这个 Lease 用于选举主 Flannel 实例、同步子网(Subnet)信息。一旦 Flannel 无法创建或更新该 Lease,就会报错退出。

常见触发条件包括:

  • 集群未就绪:kube-apiserver 尚未完全启动(比如 K3s 正在初始化 sqlite 或嵌入式 etcd),Flannel Pod 却已提前调度运行;
  • RBAC 权限缺失:Flannel ServiceAccount 缺少 leases 资源的 create/update 权限(K3s v1.25+ 默认已修复,但自定义部署或旧版本可能遗漏);
  • 网络插件冲突:节点上残留了旧的 CNI 配置(如 /etc/cni/net.d/10-flannel.conflist)或其它 CNI 插件(如 Calico、Cilium)干扰;
  • 时间不同步:节点系统时间偏差过大(>1 分钟),导致 Lease 的 renewTime 校验失败;
  • K3s 启动参数异常:例如禁用了 --disable=traefik,servicelb 却未关掉 flannel(K3s 默认启用 flannel,不建议手动 disable 后又部署 flannel)。

快速诊断步骤

先确认关键状态:

Autoppt
Autoppt

Autoppt:打造高效与精美PPT的AI工具

下载
  • 运行 kubectl get nodes —— 若节点为 NotReady,且 kubectl get pods -A | grep flannel 显示 CrashLoopBackOff,则高度疑似此问题;
  • 查看 Flannel 日志:kubectl logs -n kube-flannel deploy/kube-flannel,重点找 failed to acquire leasecannot create leaseforbidden 字样;
  • 检查 Lease 资源是否存在:kubectl get leases -n kube-flannel —— 正常应有 1 条 flannel 记录;若报错 the server could not find the requested resource,说明 apiserver 未启用 Lease API(极罕见,K3s 默认开启);
  • 验证 RBAC:kubectl auth can-i create leases -n kube-flannel --as=system:serviceaccount:kube-flannel:flannel 应返回 yes

常用解决方法

按优先级尝试以下操作(多数情况只需第 1 或第 2 步):

  • 重启 K3s 服务:最简单有效。Flannel 启动过早常因 K3s 初始化未完成所致。执行 sudo systemctl restart k3s(或 k3s-killall.sh && k3s server &),等待 30 秒后观察 kubectl get pods -n kube-flannel 是否转为 Running;
  • 清理残留 CNI 配置:删除节点上的旧配置文件sudo rm -f /etc/cni/net.d/*.conf /etc/cni/net.d/*.conflist,再重启 K3s;
  • 强制重建 Flannel Deployment:如果 Lease 已损坏,可删掉它让 Flannel 重试:kubectl delete lease -n kube-flannel flannel,再删 Flannel Pod:kubectl delete pod -n kube-flannel -l app=flannel
  • 降级 Flannel(仅临时应急):若确认是 Lease 兼容问题(如 K3s 版本较老),可在 K3s 启动时指定旧版 Flannel 镜像并关闭 lease:--flannel-image rancher/flannel:v0.19.2 --flannel-backend=host-gw --flannel-conf=/var/lib/rancher/k3s/server/manifests/flannel-config.yaml,并在 flannel-config.yaml 中添加 args: ["--lease-enable=false"](不推荐长期使用)。

预防建议

部署新集群时注意:

  • 确保系统时间同步(systemctl enable --now systemd-timesyncd);
  • 避免在 K3s 启动命令中混用 --disable=flannel 和手动部署 Flannel;
  • 升级 K3s 前查阅 Release Notes,特别是涉及 CNI 或 embedded etcd 的变更;
  • 生产环境建议使用 K3s 官方推荐的默认网络(即内置 Flannel),而非自行替换镜像或修改 backend。

不复杂但容易忽略——往往就是一次重启或删个配置文件的事。

相关专题

更多
resource是什么文件
resource是什么文件

Resource文件是一种特殊类型的文件,它通常用于存储应用程序或操作系统中的各种资源信息。它们在应用程序开发中起着关键作用,并在跨平台开发和国际化方面提供支持。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

149

2023.12.20

数据库Delete用法
数据库Delete用法

数据库Delete用法:1、删除单条记录;2、删除多条记录;3、删除所有记录;4、删除特定条件的记录。更多关于数据库Delete的内容,大家可以访问下面的文章。

269

2023.11.13

drop和delete的区别
drop和delete的区别

drop和delete的区别:1、功能与用途;2、操作对象;3、可逆性;4、空间释放;5、执行速度与效率;6、与其他命令的交互;7、影响的持久性;8、语法和执行;9、触发器与约束;10、事务处理。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

209

2023.12.29

Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务
Golang云原生微服务Kubernetes_Golang怎么集成Kubernetes开发云原生服务

Golang云原生微服务Kubernetes (K8s) 是指 使用 Go 语言(Golang)编写的云原生微服务,并利用 Kubernetes 平台进行容器化部署、自动化管理、弹性伸缩和高效编排的一整套现代应用架构方案。

24

2025.12.22

高德地图升级方法汇总
高德地图升级方法汇总

本专题整合了高德地图升级相关教程,阅读专题下面的文章了解更多详细内容。

68

2026.01.16

全民K歌得高分教程大全
全民K歌得高分教程大全

本专题整合了全民K歌得高分技巧汇总,阅读专题下面的文章了解更多详细内容。

127

2026.01.16

C++ 单元测试与代码质量保障
C++ 单元测试与代码质量保障

本专题系统讲解 C++ 在单元测试与代码质量保障方面的实战方法,包括测试驱动开发理念、Google Test/Google Mock 的使用、测试用例设计、边界条件验证、持续集成中的自动化测试流程,以及常见代码质量问题的发现与修复。通过工程化示例,帮助开发者建立 可测试、可维护、高质量的 C++ 项目体系。

54

2026.01.16

java数据库连接教程大全
java数据库连接教程大全

本专题整合了java数据库连接相关教程,阅读专题下面的文章了解更多详细内容。

39

2026.01.15

Java音频处理教程汇总
Java音频处理教程汇总

本专题整合了java音频处理教程大全,阅读专题下面的文章了解更多详细内容。

19

2026.01.15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
HTML5/CSS3/JavaScript/ES6入门课程
HTML5/CSS3/JavaScript/ES6入门课程

共102课时 | 6.7万人学习

前端基础到实战(HTML5+CSS3+ES6+NPM)
前端基础到实战(HTML5+CSS3+ES6+NPM)

共162课时 | 18.9万人学习

第二十二期_前端开发
第二十二期_前端开发

共119课时 | 12.4万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号