K3s v1.34.12+k3s1发布:Kubernetes升级与Traefik Breaking Change

本次发布升级Kubernetes至v1.34.12,Traefik chart升级至v40.x带来provider名称变更

UniMgr 技术编辑 来源:技术源整理 21
K3s v1.34.12+k3s1发布:Kubernetes升级与Traefik Breaking Change

K3s v1.34.12+k3s1版本将Kubernetes升级至v1.34.12,并将内置的Traefik chart升级至v40.x。Traefik v40.x包含一个破坏性变更:ingress-nginx迁移的provider名称从kubernetesIngressNginx变更为kubernetesIngressNGINX。此外,版本还更新了多个组件版本,并修复了若干问题,如etcd快照恢复、riscv64架构seccomp支持等。

技术要点

K3s v1.34.12+k3s1版本的核心变更围绕Kubernetes内核升级与内置组件更新展开。

首先,Kubernetes核心版本从v1.34.11升级至v1.34.12。这是一个常规的版本迭代,包含了Kubernetes上游的bug修复与改进。

其次,内置的Traefik Ingress Controller的Helm chart升级至v40.x版本。此升级引入了一项关键的破坏性变更(breaking change):在用于ingress-nginx迁移的场景中,provider的名称从kubernetesIngressNginx变更为kubernetesIngressNGINX。用户若使用此迁移功能,需相应调整配置。

此外,版本对多个嵌入式组件进行了版本 bump(升级):

  • 将rancher/mirrored-coredns-coredns镜像版本进行升级。
  • 将gateway-api和traefik镜像版本进行升级。
  • 将Traefik本身升级至v3.7.13。
  • 将google.golang.org/grpc库升级至v1.83.2,以修复CVE-2026-84445漏洞。
  • 将etcd升级至v3.7.1-k3s3,以支持非阻塞日志。
  • 将kine升级至v0.17.1。
  • 将helm-controller进行升级。
  • 将k3s-io/kubernetes和Go相关引用进行升级。

在功能修复与改进方面,本次发布包括:

  • 修复从压缩的etcd快照恢复的问题。
  • 在riscv64构建中启用seccomp。
  • 使用ginkgo CLI运行测试。
  • 修复--flannel-cni-conf配置未传递到嵌入式flannel的问题。
  • 修复deploy controller在mtime被固定到epoch时不重新应用manifests的问题。
  • 改进CA哈希验证。
  • 拒绝匿名访问supervisor router(spegel/pprof/metrics端点)。
  • 在使用缓存前,要求node password informer同步。

嵌入式组件的最终版本状态为:Kubernetes v1.34.12,Kine v0.16.5,SQLite 3.53.4,Etcd v3.6.14-k3s3,Containerd v2.2.7-k3s1,Runc v1.4.2,Flannel v0.28.4,Metrics-server v0.9.0,Traefik v3.7.13,CoreDNS v1.14.7,Helm-controller v0.16.27,Local-path-provisioner v0.0.37。

原理与背景

本次发布的主要驱动力是跟随Kubernetes上游的稳定版本迭代,确保K3s发行版能够包含上游社区的最新修复与特性。Kubernetes v1.34.12作为v1.34系列的一个补丁版本,主要侧重于稳定性与安全性修复。

Traefik chart升级至v40.x并伴随provider名称的破坏性变更,这通常源于Traefik项目自身为了统一命名规范、增强配置清晰度或适配新的API设计而做出的架构调整。kubernetesIngressNGINX的新名称可能更明确地指向NGINX作为后端,避免了大小写不一致可能带来的混淆或配置错误。对于依赖此迁移功能的用户,这是一个必须处理的兼容性变更。

其他组件的版本升级,如etcd、kine、grpc等,主要出于以下原因:一是修复已知的安全漏洞(如grpc的CVE);二是获取新的功能支持(如etcd的非阻塞日志);三是提升性能与稳定性。例如,启用riscv64架构的seccomp,是为了在该架构上提供更强的安全隔离,符合容器运行时安全最佳实践。

拒绝匿名访问supervisor router的metrics、pprof等端点,是一项重要的安全加固措施。这些端点暴露了集群的内部运行状态与调试信息,限制匿名访问可以有效防止未授权的信息泄露或潜在的攻击面扩大。

落地建议

对于计划升级至K3s v1.34.12+k3s1的用户,建议遵循以下步骤与注意事项:

  1. 备份与测试:在进行任何生产环境升级前,务必对集群状态、重要数据(特别是etcd数据)进行完整备份。建议在测试环境中先行升级,验证所有关键应用与服务是否正常运行。
  2. 处理Traefik Breaking Change:如果集群中使用了Traefik的ingress-nginx迁移功能,必须检查相关配置。将配置中的provider名称从kubernetesIngressNginx更新为kubernetesIngressNGINX。可以参考Traefik Helm Chart v40.0.0的发布说明获取更详细的迁移指导。
  3. 关注组件变更:了解本次升级涉及的各组件版本变化。特别是etcd、kine等存储相关组件,虽然升级通常向后兼容,但在升级后观察集群稳定性与性能表现是必要的。
  4. 安全加固验证:升级后,可以验证supervisor router的metrics、pprof等端点是否已正确拒绝匿名访问。这可以通过尝试匿名访问这些端点来确认。
  5. 通用升级流程:遵循K3s官方的升级指南进行操作。通常涉及更新k3s二进制文件与服务配置。对于使用Helm部署的应用,注意检查依赖的Chart版本是否需要相应调整。
  6. 阅读完整发布说明:本次整理仅涵盖了素材中明确列出的主要变更。用户在升级前应查阅完整的K3s v1.34.12+k3s1发布说明,以获取所有细节,包括可能未在此摘要中列出的其他小修复与改进。

技术分享更多资讯

查看全部
布里吉斯游戏引擎更新:波次与技能机制重构
技术分享

布里吉斯游戏引擎更新:波次与技能机制重构

游戏开发者布里吉斯发布最新技术更新,重点重构了敌人波次生成逻辑与干员技能释放机制。此次更新涉及底层数据配置与快照保存系统的优化,为后续数据库更新及前端开发奠定基础。开发者透露将学习Unity引擎技术,并计划未来转向自研引擎,标志着项目从原型向工业化开发的重要转型。

AI 编辑 3
Agent 上下文治理全景原则篇:构建目标导向的智能判断体系
技术分享

Agent 上下文治理全景原则篇:构建目标导向的智能判断体系

本文聚焦 Agent 上下文治理的核心原则,从目标、依据、边界、记忆、探索及进展六个维度,深入剖析上下文机制如何辅助智能体围绕既定任务进行持续且精准的判断。通过明确各机制职责,旨在提升 Agent 在复杂环境下的任务执行效率与稳定性,为构建更可靠的 AI 系统提供理论框架与实践指导。

AI 编辑 3
Python 3.13 引入 Queue.shutdown 解决异步退出难题
技术分享

Python 3.13 引入 Queue.shutdown 解决异步退出难题

Python 3.13 正式引入 Queue.shutdown 方法,旨在解决异步消费者在收到停止信号后难以优雅退出的长期痛点。此前,开发者需手动处理取消信号,常导致部分已取出的任务处理中断或资源泄漏。新特性简化了异步队列的生命周期管理,提升了并发编程的可靠性与代码简洁性,对 Python 异步生态具有积极意义。

AI 编辑 4
游戏团队管理进阶:从被动救火到主动规划
技术分享

游戏团队管理进阶:从被动救火到主动规划

本文基于对游戏团队管理实践的深入思考,指出许多管理者陷入“解决问题”的时间陷阱。通过定期复盘日程,作者发现大量精力耗费在应对架构、需求及人员冲突等突发状况上。文章主张管理者应转变思维,从被动响应转向主动发现潜在问题,优化团队效能,避免陷入低效的救火循环,为游戏行业团队管理提供新的视角。

AI 编辑 3