首页/新闻资讯/正文详情

Flannel 集群升级指南:三种升级/回滚路径与最佳实践

发布时间:2026/9/25 2:48:13 来源:云帆数科 栏目:资讯中心
Flannel 集群升级指南:三种升级/回滚路径与最佳实践
云原生网络【免费下载链接】flannelflannel is a network fabric for containers, designed for Kubernetes项目地址https://gitcode.com/gh_mirrors/fl/flannel点击查看免费下载Flannel 作为 Kubernetes 集群的网络插件其版本变更升级或回滚直接关系到集群 Pod 网络的可用性。本文以 Documentation/upgrade.md 为核心骨架系统梳理官方给出的三种版本切换路径——删除重建资源、在线热更新、Helm Chart 升级并结合当前仓库的 kube-flannel.yml、Chart.yaml、values.yaml 与 main.go 等源码与资源配置深入说明每种路径的适用场景、操作步骤与注意事项帮助读者为自身集群选择安全可控的升级策略。升级方式总览Flannel 官方文档将集群中更换 flannel 版本的方式归纳为三种各自在操作干净度与网络中断程度之间做了不同取舍方式优点缺点适用场景删除旧资源并安装新版本资源管理最干净只要运维/管理员未额外创建资源就无需手动校验版本变更期间集群内出现大规模网络中断可接受短暂全网中断的维护窗口在线热更新on the fly干扰最小、操作简单部分版本存在无法原地替换的变更可能需要资源清理或改名需人工对比资源差异小版本升级、追求低中断Helm Chart 升级版本变更由 Helm 统一管理升级流程标准化、可回滚需要 flannel 0.21.4 支持且要求集群已或转为由 Helm 管理资源已采用 Helm 管理资源的集群方式一删除旧资源并安装新版本这是文档描述为最干净的路径前提是管理员/运维未在 flannel 部署之外额外创建相关资源。它的代价是明确的由于会删除 DaemonSet、ConfigMap、RBAC 乃至整个命名空间变更窗口内集群 Pod 网络会大规模中断通常与节点重启配合使用。第一步删除全部 flannel 资源使用kubectl依次删除 flannel 部署所依赖的全部资源kubectl -n kube-flannel delete daemonset kube-flannel-ds kubectl -n kube-flannel delete configmap kube-flannel-cfg kubectl -n kube-flannel delete serviceaccount flannel kubectl delete clusterrolebinding.rbac.authorization.k8s.io flannel kubectl delete clusterrole.rbac.authorization.k8s.io flannel kubectl delete namespace kube-flannel上述资源一一对应仓库 Documentation/kube-flannel.yml 清单中定义的对象kube-flannel命名空间启用pod-security.kubernetes.io/enforce: privileged、flannelClusterRole 与 ClusterRoleBinding、flannelServiceAccount、kube-flannel-cfgConfigMap内含cni-conf.json与net-conf.json两份配置、以及kube-flannel-dsDaemonSet。删除顺序上建议先删 DaemonSet 以停止调度再删 ConfigMap 与 RBAC最后删命名空间。第二步安装新版本并重启节点删除完成后应用新版本清单kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml随后重启节点或重启相关网络组件/kubelet使节点上的 CNI 配置与网络状态切换到新版本。当前仓库中的 Documentation/kube-flannel.yml 展示了现代版本的清单结构DaemonSet 以hostNetwork: true、priorityClassName: system-node-critical运行包含install-cni-plugin拷贝 CNI 二进制到/opt/cni/bin与install-cni通过/opt/bin/install-conf生成/etc/cni/net.d/10-flannel.conflist两个 initContainer主容器kube-flannel以--ip-masq --kube-subnet-mgr --healthz-port8081参数启动并挂载/run/flannel、/run/xtables.lock等 hostPath。方式二在线热更新on the fly该路径追求最小干扰直接以最新版本清单覆盖现有资源无需删除命名空间Pod 网络基本不受影响。文档明确指出若从 0.20.2 或更新版本升级可直接使用kubectl完成kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml回退指引若 apply 过程在labeling标签环节报错请回退到方式一删除重建。文档同时列出该方式的两个固有风险部分版本包含无法原地替换的变更资源改名、字段结构调整、CNI 配置变化等直接 apply 可能留下残留资源或产生新旧配置冲突需要人工对比新旧资源差异确认net-conf.json中的NetworkPod CIDR与Backend.Type等关键参数在版本间未发生不兼容变化。从源码侧看热更新的安全边界取决于配置兼容性如 Documentation/kube-flannel.yml 中net-conf.json定义了Network: 10.244.0.0/16、EnableNFTables: false、Backend.Type: vxlan。若新版本默认启用 nftables 或调整了后端默认值原地 apply 后各节点可能以不一致的配置运行——这正是文档要求人工校验的原因。此外DaemonSet 滚动更新期间新旧 flanneld Pod 会短暂共存--healthz-portmain.go 中该参数默认 0 表示禁用清单中显式设为 8081等运行参数在两版本间保持一致可避免探针行为漂移。方式三使用 Helm Chart 仓库升级从flannel v0.21.4 起flannel 官方在 Helm 仓库https://flannel-io.github.io/flannel/发布 Chart此后可直接用helm upgrade管理版本变更helm upgrade flannel --set podCidr10.244.0.0/16 --namespace kube-flannel flannel/flannel命令要素说明flannel为 Helm release 名称--set podCidr10.244.0.0/16显式指定 Pod 网络 CIDR必须与kubeadm init --pod-network-cidr参见 Documentation/kubernetes.md保持一致否则节点间子网分配将不一致--namespace kube-flannel指定部署命名空间flannel/flannel为 Chart 引用仓库名/Chart 名。仓库 chart/kube-flannel/Chart.yaml 确认了当前 Chart 元信息name: flannel、appVersion: v0.28.9、version: v0.28.9sources指向 flannel 官方仓库。基于 values.yaml 可梳理出升级时最常用的可调参数参数默认值说明podCidr10.244.0.0/16Pod IPv4 网段升级时一般保持与集群一致podCidrv6可选 IPv6 Pod 网段flannel.image.repository/flannel.image.tagghcr.io/flannel-io/flannel/v0.28.9flanneld 镜像升级版本时修改 tagflannel.flannel_cni.image.tagv1.9.1-flannel3flannel CNI 插件镜像 tagflannel.backendvxlan后端类型官方注释明确backend 不应在运行时变更flannel.enableNFTablesfalse是否启用 nftables 实现flannel.cniBinDir/flannel.cniConfDir/opt/cni/bin//etc/cni/net.dCNI 二进制与配置安装目录flannel.skipCNIConfigInstallationfalse置 true 时跳过 CNI 配置安装配置由外部提供flannel.healthz.port8081健康检查端口非 0 时启用flannel.tolerations/flannel.nodeSelector见 values.yaml调度容忍与节点选择Chart 模板 daemonset.yaml 展示了这些值如何渲染为最终清单镜像由repository:tag拼接install-cniinitContainer 受skipCNIConfigInstallation开关控制tolerations 与 nodeSelector 由 values 注入。这意味着通过 Helm 升级时只需调整 values 中的镜像 tag 与配置参数即可完成版本替换资源变更由 Helm 统一记录并可借助helm rollback回退——这是方式三相比方式一、方式二的核心优势。仓库 Documentation/kustomization/kube-flannel/kustomization.yaml 还提供了基于 Kustomize 的替代管理方式通过images.newTag覆盖镜像版本可作为不使用 Helm 时的轻量选择。升级后的验证与注意事项无论采用哪种方式升级完成后建议按以下顺序验证集群网络恢复健康检查 Pod 状态确认kube-flannel-ds的 Pod 在全部节点上Running且READYkubectl -n kube-flannel get pods -o wide kubectl -n kube-flannel get daemonset kube-flannel-ds检查探针清单为主容器配置了 livenessProbe/healthz延迟 10s、周期 30s与 readinessProbe/readyz延迟 5s、周期 10s若READY列为 0/1可用kubectl -n kube-flannel logs pod定位问题。/readyz端点实现见 main.go会基于子网管理器状态返回结果。验证跨节点连通性运行跨节点 Pod 互 ping 或访问 Service确认 Pod 网络默认10.244.0.0/16恢复。确认实际版本通过kubectl -n kube-flannel get daemonset kube-flannel-ds -o jsonpath{.spec.template.spec.containers[0].image}查看镜像 tagflanneld 本身也支持--version参数main.go打印版本。总结如何选择升级路径场景推荐路径集群可接受短暂全网中断、资源清单完全受控方式一删除重建 节点重启从 0.20.2 及以上版本升级、追求最小中断方式二kubectl apply 在线热更新已用 Helm 管理或从 0.21.4 起新部署方式三helm upgrade可 rollbackapply 热更新在 labeling 阶段报错回退到方式一三种方式并非互斥方式二遇阻可回退到方式一方式三适合作为长期资源管理基座。核心原则是先对比新旧资源差异再决定原地更新还是整体重建并确保 Pod CIDR、后端类型、nftables 开关等关键配置在切换前后保持一致从而将升级风险降到最低。赞分享云原生网络【免费下载链接】flannelflannel is a network fabric for containers, designed for Kubernetes项目地址https://gitcode.com/gh_mirrors/fl/flannel点击查看免费下载相关推荐StarRocks 集群升级完全指南从版本路径规划到滚动升级实战StarRocks 集群升级完全指南从版本路径规划到滚动升级实战 本篇技术指南以 StarRocks 官方部署文档《Upgrade StarRocks》为骨架数据库OLAP数据仓库大数据湖仓一体数据分析ClickHouse版本迁移实战企业级升级与回滚最佳实践ClickHouse版本迁移实战企业级升级与回滚最佳实践 ClickHouse作为现代大数据分析型数据库管理系统其版本迭代频率高、功能更新快为企业用户带来数据库OLAP列式数据库大数据实时分析数据分析unplugin-dts进阶用法如何为Vue 3组件生成类型声明unplugin dts进阶用法如何为Vue 3组件生成类型声明 在现代前端开发中TypeScript已经成为构建大型Vue 3项目的标配。然而为Vue组上一篇openPangu-2.0-Flash代码生成能力实测LiveCodeBench V6 85.1分的秘密下一篇ControlNet-OpenPose-SDXL 1.03分钟让AI精准控制人物姿态的终极指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关推荐

aos-fs:AOS 的文件系统 Capsule——八个工具、VFS 气闸与能力声明的完整剖析
aos-fs:AOS 的文件系统 Capsule——八个工具、VFS 气闸与能力声明的完整剖析

【免费下载链接】aos-ce AOS Community Edition: the open agent operating system. 项目地址: https://gitcode.com/gh_mirrors/ao/aos-ce 点击查看 免费下载 aos-fs 是 Unicity AOS 中承担"coreutils"角色的第一方 Capsule,它通过内核 VFS … · 2026/9/25 2:48:13

Ollama企业级网关实践:从裸接口到生产级服务
Ollama企业级网关实践:从裸接口到生产级服务

去年我们把大模型能力接到内部工单系统时,第一版代码是直接对着 Ollama 裸接口写的。开发环境跑得飞快,可等到要正式上线、多个业务团队共用同一批 GPU 服务器时,我才意识到面前缺了一个企业级网关。没有统一入口、没有身份校验、没有配额概念… · 2026/9/25 2:48:13

VoltAgent Memory API 完整指南:`/api/memory/*` 端点解析、鉴权与语义检索实战
VoltAgent Memory API 完整指南:`/api/memory/*` 端点解析、鉴权与语义检索实战

人工智能AI AgentAgent 框架后端多智能体RAG工具调用Agent 记忆 【免费下载链接】voltagent AI Agent Engineering Platform built on an Open Source TypeScript AI Agent Framework 项目地址: https://gitcode.com/gh_mirrors/vo/voltagent 点击查看 免费下载 Vo… · 2026/9/25 2:48:13

RocketMQ大消息处理实战:4MB限制排查与优化方案
RocketMQ大消息处理实战:4MB限制排查与优化方案

1. 4MB限制不是传说:客户端和Broker各卡一道,先搞清楚“谁说了算”上周有个同事跑来找我,说线上给下游推送客户画像消息,突然开始报错,后台一看发送端直接抛了MQClientException: message body size over maxMessageSi… · 2026/9/25 3:56:33

OpenShorts AI布局自动决策的秘密:为什么发12帧比发整个视频更聪明(含成本测算)
OpenShorts AI布局自动决策的秘密:为什么发12帧比发整个视频更聪明(含成本测算)

OpenShorts AI布局自动决策的秘密:为什么发12帧比发整个视频更聪明(含成本测算) 【免费下载链接】openshorts Open source AI clip generator: turns long videos into viral 9:16 shorts with AI moment detection, face tracking, subtitle… · 2026/9/25 3:56:27

ipatool:一条命令完成 App Store IPA 下载,旧版本直接拿
ipatool:一条命令完成 App Store IPA 下载,旧版本直接拿

ipatool:一条命令完成 App Store IPA 下载,旧版本直接拿 【免费下载链接】ipatool Command-line tool that allows you to search for iOS, iPadOS, tvOS, visionOS, and macOS apps on the App Store, and download .ipa or macOS .pkg app packages. … · 2026/9/25 3:56:27

二分查找全解析:核心思想、边界处理与PTA函数题实现
二分查找全解析:核心思想、边界处理与PTA函数题实现

二分查找这个算法,很多人觉得自己早就掌握了:不就是“对一个有序数组,每次取中间值比较一下,缩小一半范围”嘛。可实际上,我在带学生和帮朋友排查面试题的几年里,发现二分查找反而是翻车率最高的题目之一。… · 2026/9/25 3:56:26

含碳捕集微网多时间尺度低碳经济调度:改进粒子群算法及Matlab实现
含碳捕集微网多时间尺度低碳经济调度:改进粒子群算法及Matlab实现

做微网调度研究的人这两年普遍有个感受:经济性和低碳性已经不能分开算了。我最早接触这个方向时,模型里就是燃料费加运维费,碳排放最多折算成碳税在目标函数里加一笔。后来意识到一个问题:把碳捕集装置(CCS&#xff09… · 2026/9/25 3:56:20

PilotDeck插件开发完全指南:用plugin.json注册工具、Hook与自定义记忆存储
PilotDeck插件开发完全指南:用plugin.json注册工具、Hook与自定义记忆存储

PilotDeck插件开发完全指南:用plugin.json注册工具、Hook与自定义记忆存储 【免费下载链接】PilotDeck Task-oriented AI Agent productivity platform 项目地址: https://gitcode.com/OpenBMB/PilotDeck PilotDeck 是一个任务导向的 AI Agent 生产力平台&am… · 2026/9/25 3:56:20

数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)
数值优化(Numerical Optimization)学习系列-03-共轭梯度方法(Conjugate Gradient)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战
创维E900V22D刷机全攻略:S905L3SB芯片兼容性解析与救砖实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:31

MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX
MQTT协议原理与Broker服务器搭建实战:从Mosquitto到EMQX

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/25 1:00:37

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码