发布日期: 2025-01-10
版本号: v1.32.0+k3s1

K3S v1.32.0+k3s1 是首个基于 Kubernetes v1.32.0 的版本。该版本默认启用了 Beta 阶段的 AuthorizeNodeWithSelectors 功能门,可能导致旧版本 RBAC 规则兼容性问题。若需与其他 Kubernetes 版本(需符合版本偏差策略)混合部署,需在服务节点添加 --kube-apiserver-arg=feature-gates=AuthorizeNodeWithSelectors=false 参数,直至后续修复版本发布。

主要变更包括:修复证书轮换验证问题、升级 runc 至 v1.1.13、优化 CNI 插件安装路径为固定目录、集成 Trivy 漏洞扫描至 CI 流程、提升 kine 组件性能(PostgreSQL 场景需通过环境变量迁移新表结构)、新增 K3S_ROOTLESS_COPYUPDIRS 环境变量支持 Rootlesskit 目录挂载配置、简化服务负载均衡组件 svclb 的实现逻辑、支持 NVIDIA CDI 运行时等。

核心组件版本更新为:Kubernetes v1.32.0、Containerd v1.7.23-k3s2、Runc v1.2.1-k3s1、Flannel v0.25.7、Traefik v2.11.10、CoreDNS v1.12.0、Metrics Server v0.7.2。此次更新还包含多项稳定性改进与测试增强,包括修复 etcd 碎片整理超时、优化节点 DNS 地址传递逻辑、增强安装脚本对 Fedora Atomic 系统的支持等。

更新内容 (中文)

这是 K3S 在 v1.32 系列中的首个发布版本。此版本将 Kubernetes 更新至 v1.32.0。

Kubernetes 1.32 将 AuthorizeNodeWithSelectors 特性门控移至 Beta 阶段并默认启用。更多信息请参阅 KEP-4601

此特性门控变更会破坏 K3s 早期版本依赖的部分 RBAC 机制。K3s v1.29、v1.30 和 v1.31 的一月版本将包含向后移植的修复。在此之前,如果您需要将 K3s v1.32 节点与其他版本节点混合使用(在 Kubernetes 版本偏差策略 支持的范围内),必须在服务节点上设置 --kube-apiserver-arg=feature-gates=AuthorizeNodeWithSelectors=false

有关更新的更多详情,请参阅 Kubernetes 发布说明

自 v1.31.4+k3s1 以来的变更:

  • 修复在不修改默认自签名 CA 时 rotateca 验证失败的问题 (#10710)
  • 升级 runc 至 v1.1.13 (#10737)
  • 更新稳定通道至 v1.30.4+k3s1 (#10739)
  • 修复在 E2E 测试中部署最新提交的问题 (#10725)
  • 移除 Secrets 加密控制器 (#10612)
  • 更新 Kubernetes 至 v1.31.0-k3s3 (#10764)
  • 升级 traefik 至 v2.11.8 (#10779)
  • 更新 coredns 至 1.11.3 以及 metrics-server 至 0.7.2 (#10760)
  • 为 PR 报告添加 trivy 扫描 (#10758)
  • 覆盖 E2E 升级测试中遇到新次版本发布的边缘情况 (#10781)
  • 升级 aquasecurity/trivy-action 从 0.20.0 至 0.24.0 (#10795)
  • 更新 CNI 插件版本 (#10798)
  • 升级 Sonobuoy 版本 (#10792)
  • 修复 /trivy action 运行时针对目标分支而非 PR 分支的问题 (#10824)
  • 随 init 启动私有注册表 (#10822)
  • 为 v1.31 添加通道 (#10826)
  • 升级 containerd 至 v1.7.21,runc 至 v1.1.14 (#10805)
  • 升级 helm-controller 以支持 skip-verify/plain-http 和更新的容忍度 (#10832)
  • 在扫描前将 PR 镜像构建标记为最新 (#10825)
  • 仅清理 k3s 管理的 containerd hosts 目录 (#10823)
  • 移除 otelgrpc 固定依赖 (#10799)
  • 添加 node-internal-dns/node-external-dns 地址透传支持 (#10852)
  • 在 trivy 中未发现 CVE 时给出良好报告 (#10853)
  • 修复 hosts.toml 头部变量 (#10870)
  • 升级 Trivy 版本 (#10863)
  • 添加 flannel-ipv6masq 的集成测试 (#10440)
  • 升级 Trivy 版本 (#10899)
  • 更新 Kubernetes 至 v1.31.1-k3s3 (#10911)
  • 在 CI 中添加 MariaDB (#10724)
  • 更新稳定通道至 v1.30.5+k3s1 (#10921)
  • 使用静态 CNI bin 目录 (#10868)
    • K3s 现在使用一个稳定的目录存放 CNI 二进制文件,这简化了额外 CNI 插件的安装。
  • 拆分 trivy 扫描并检查评论作者 (#10935)
  • 修复 getMembershipForUserInOrg 调用 (#10937)
  • 对于 trivy 扫描,检查 k3s-io 组织成员资格而非团队成员资格 (#10940)
  • 升级 kine 至 v0.13.0 (#10932)
    • Kine 已升级至 v0.13.0。此版本包含应能增强使用 postgres 作为外部数据库时性能的变更。更新后的架构将自动用于新数据库;要在现有数据库上迁移到新架构,可以在启动 K3s 时设置环境变量 KINE_SCHEMA_MIGRATION=2
  • 修复 trivy 报告下载 (#10943)
  • Trivy 工作流:指定 GH_REPO 环境变量以使用 gh cli (#10949)
  • 升级 Trivy 版本 (#10924)
  • 升级 traefik 至 chart 27.0.2 (#10939)
  • 将 Rancher 的 VEX 报告传递给 Trivy 以移除已知误报的 CVE (#10956)
  • 修复 trivy vex 行 (#10970)
  • 将用户路径添加到运行时搜索 (#10953)
    • 运行时检测现在将使用 $PATH
  • 升级至新的 wharfie 版本 (#10971)
  • 更新 README.md (#10523)
  • 移除尾随空格 (#9362)
  • 升级 kine 至 v0.13.2 (#10978)
  • 允许通过环境变量配置 Rootlesskit 的 CopyUpDirs (#10386)
    • 添加新环境变量 “K3S_ROOTLESS_COPYUPDIRS” 以向 Rootlesskit 配置添加文件夹。
  • 修复多个节点协调 S3 快照时的竞态条件 (#10979)
  • 升级 Trivy 版本 (#10996)
  • 添加 ca-cert 轮换集成测试,并修复 ca-cert 轮换 (#11013)
  • 添加验证服务中流量策略和防火墙的 e2e 测试 (#10972)
  • 更新 tcpproxy 以应对导入路径变更 (#11029)
  • 升级 Local Path Provisioner 版本 (#10862)
  • 升级 local-path-provisioner 至 v0.0.30 (#11049)
  • 升级 helm-controller 和 klipper-helm (#11060)
  • 升级 containerd 至 v1.7.22 (#11067)
  • 简化 svclb daemonset (#10954)
    • 停止使用 klipper-lb 作为 svclb 的镜像。替换为一个仅用于休眠的简单 busybox。
  • 添加 nvidia runtime cdi (#11065)
    • 将 nvidia cdi runtime 添加到支持和可发现的运行时列表中
  • 升级 Trivy 版本 (#11103)
  • 将 GHA 回滚至 Ubuntu 22.04 (#11111)
  • 撤销 “使 svclb 尽可能简单” (#11109)
  • 修复 Ubuntu-24.04 上的 Github Actions (#11112)
  • 升级 aquasecurity/trivy-action 从 0.24.0 至 0.27.0 (#11105)
  • 对于升级 E2E 测试,检查最近 10 次提交 (#11086)
  • 升级 aquasecurity/trivy-action 从 0.27.0 至 0.28.0 (#11138)
  • 修复升级 k3s 时 CNI bin 出现的 “file exists” 错误 (#11123)
  • 减少 E2E nightly 的 GH api 请求次数 (#11148)
  • 更新 Kubernetes 至 v1.31.2-k3s1 和 Go 1.22.8 (#11163)
  • 更新稳定通道至 v1.30.6+k3s1 (#11186)
  • 修复启动时 etcd 碎片整理超时问题 (#11164)
  • 在安装脚本中捕获所有 fedora atomic 变体 (#11170)
    • 允许在所有使用 rpm-ostree 的 fedora atomic 变体上更容易地安装 k3s
  • 修复 contributing.md 中的拼写错误 (#11201)
  • 升级 Trivy 版本 (#11206)
  • 固定 vagrant 为旧版本以避免已知问题 13527 (#11226)
  • 从嵌入式 etcd 版本设置 kine EmulatedETCDVersion (#11221)
  • 在 agent CLI 中添加 nonroot-devices 标志 (#11200)
    • 现在可以通过设置 --nonroot-devices 标志或配置键在 containerd CRI 配置中启用 Device_ownership_from_security_context
  • 升级 runc 至 v1.2 (#10896)
  • 更新 flannel 和基础 cni 插件版本 (#11188)
  • 升级 github.com/golang-jwt/jwt/v4 从 4.5.0 至 4.5.1 (#11236)
  • 修复 MustFindString 在外部 CLI 命令上返回覆盖标志的问题 (#11237)
  • 升级 containerd 至 v1.7.23-k3s1 以修复注册表重写令牌作用域 (#11238)
  • 修复包装的 kubectl 库中 oidc-login 的 “Standalone” 模式 (#11266)
    • 修复在独立模式下使用 oidc-login 时出现的 ’no Auth Provider found for name “oidc”’。
  • 升级 K3s-root 版本至 v0.14.1 (#11282)
  • 升级 kine (#11277)
  • 升级 kine 以修复 mysql 连接关闭问题 (#11305)
  • 修复使用路径运行时包装子命令的处理 (#11306)
  • 修复 klipper 和 helm-controller 的 updatecli 配置 (#11290)
  • 修复负载均衡器故障转移到默认服务器的问题 (#11319)
  • 更新 localstorage_int_test.go 引用 (#11339)
    • tests/integration/README.md 中更新 localstorage_int_test.go 引用
  • 在 output 命令中添加 --output 以保持与 product 命令一致 (#11345)
  • 允许安装脚本在二进制文件下载失败时打印错误 (#11335)
  • 移除 go 工具链行 (#11358)
  • 为 e2e 测试添加 ubuntu 24.04 apt 命令 (#11361)
  • 升级 Trivy 版本 (#11360)
  • 升级 aquasecurity/trivy-action 从 0.28.0 至 0.29.0 (#11364)
  • 将遗留的 docker 测试从 bash 转换为 golang (#11357)
  • 更新 Kubernetes 至 v1.31.3-k3s1 (#11373)
  • 修复 Dependabot 和 UpdateCLI 推送到 k3s-io 时的分支名称逻辑 (#11376)
  • 修复 INSTALL_K3S_PR 支持 (#11383)
  • 修复 etcd 备份/恢复测试并为 etcd-snapshot 添加防护 (#11314)
  • 升级 containerd 至 -k3s2 以修复重写 (#11401)
  • 修复 opensuse-leap 安装测试 (#11379)
  • 修复 secrets-encrypt reencrypt 超时错误 (#11385)
  • 重新设计负载均衡器服务器选择逻辑 (#11329)
  • 从 embedded-registry 标志中移除 experimental (#11443)
  • 更新稳定通道至 v1.31.3+k3s1 (#11436)
  • 修复具有专用 supervisor 端口的 agent 隧道地址 (#11427)
  • 更新 coredns 至 1.12.0 (#11387)
  • 升级 Trivy 版本 (#11430)
  • 更新至 v1.31.4-k3s1 和 Go 1.22.9 (#11463)
  • 在 /conformance 中升级 alpine 从 3.20 至 3.21 (#11433)
  • 修复 docker 检查警告 (#11474)
  • 更新稳定通道至 v1.31.4+k3s1 (#11483)
  • V1.32.0+k3s1 (#11478)
  • 切换为对所有支持的标志使用 kubelet 配置文件 (#10433)
  • 在 agent 设置中加载 nft 的内核模块 (#11527)

嵌入组件版本

组件 版本
Kubernetes v1.32.0
Kine v0.13.5
SQLite 3.46.1
Etcd v3.5.16-k3s1
Containerd v1.7.23-k3s2
Runc v1.2.1-k3s1
Flannel v0.25.7
Metrics-server v0.7.2
Traefik v2.11.10
CoreDNS v1.12.0
Helm-controller v0.16.5
Local-path-provisioner v0.0.30

有用链接

一如既往,我们欢迎并感谢来自用户社区的反馈。请随时:

更新内容 (原始)

This release is K3S’s first in the v1.32 line. This release updates Kubernetes to v1.32.0.

Kubernetes 1.32 moves the AuthorizeNodeWithSelectors feature gate to Beta and on by default. See KEP-4601 for more information.

This feature-gate breaks some of the RBAC that previous releases of K3s relied upon. The January releases of K3s v1.29, v1.30, and v1.31 will contain backported fixes. Until then, you must set --kube-apiserver-arg=feature-gates=AuthorizeNodeWithSelectors=false on server nodes, if you want to mix K3s v1.32 nodes with nodes of other versions (within the limits of what is supported by the Kubernetes Version Skew Policy).

For more details on what’s new, see the Kubernetes release notes.

Changes since v1.31.4+k3s1:

  • Fix rotateca validation failures when not touching default self-signed CAs (#10710)
  • Bump runc to v1.1.13 (#10737)
  • Update stable channel to v1.30.4+k3s1 (#10739)
  • Fix deploy latest commit on E2E tests (#10725)
  • Remove secrets encryption controller (#10612)
  • Update kubernetes to v1.31.0-k3s3 (#10764)
  • Bump traefik to v2.11.8 (#10779)
  • Update coredns to 1.11.3 and metrics-server to 0.7.2 (#10760)
  • Add trivy scanning to PR reports (#10758)
  • Cover edge case when on new minor release for E2E upgrade test (#10781)
  • Bump aquasecurity/trivy-action from 0.20.0 to 0.24.0 (#10795)
  • Update CNI plugins version (#10798)
  • Bump Sonobuoy version (#10792)
  • Fix /trivy action running against target branch instead of PR branch (#10824)
  • Launch private registry with init (#10822)
  • Add channel for v1.31 (#10826)
  • Bump containerd to v1.7.21, runc to v1.1.14 (#10805)
  • Bump helm-controller for skip-verify/plain-http and updated tolerations (#10832)
  • Tag PR image build as latest before scanning (#10825)
  • Only clean up containerd hosts dirs managed by k3s (#10823)
  • Remove otelgrpc pinned dependency (#10799)
  • Add node-internal-dns/node-external-dns address pass-through support (#10852)
  • Give good report if no CVEs found in trivy (#10853)
  • Fix hosts.toml header var (#10870)
  • Bump Trivy version (#10863)
  • Add int test for flannel-ipv6masq (#10440)
  • Bump Trivy version (#10899)
  • Update Kubernetes to v1.31.1-k3s3 (#10911)
  • Add MariaDB to CI (#10724)
  • Update stable channel tov1.30.5+k3s1 (#10921)
  • Use static CNI bin dir (#10868)
    • K3s now uses a stable directory for CNI binaries, which simplifies the installation of additional CNI plugins.
  • Breakup trivy scan and check comment author (#10935)
  • Fix getMembershipForUserInOrg call (#10937)
  • Check k3s-io organization membership not team membership for trivy scans (#10940)
  • Bump kine to v0.13.0 (#10932)
    • Kine has been bumped to v0.13.0. This release includes changes that should enhance performance when using postgres as an external DB. The updated schema will be automatically used for new databases; to migrate to the new schema on existing databases, K3s can be started with the KINE_SCHEMA_MIGRATION=2 environment variable set.
  • Fix trivy report download (#10943)
  • Trivy workflow: Specify GH_REPO env to use gh cli (#10949)
  • Bump Trivy version (#10924)
  • Bump traefik to chart 27.0.2 (#10939)
  • Pass Rancher’s VEX report to Trivy to remove known false-positives CVEs (#10956)
  • Fix trivy vex line (#10970)
  • Add user path to runtimes search (#10953)
    • Runtimes detection will now use $PATH
  • Bump to new wharfie version (#10971)
  • Update README.md (#10523)
  • Remove trailing whitespace (#9362)
  • Bump kine to v0.13.2 (#10978)
  • Allow configuration of Rootlesskit’s CopyUpDirs through an environment variable (#10386)
    • Add new environment variable “K3S_ROOTLESS_COPYUPDIRS” to add folders to the Rootlesskit configuration.
  • Fix race condition when multiple nodes reconcile S3 snapshots (#10979)
  • Bump Trivy version (#10996)
  • Add ca-cert rotation integration test, and fix ca-cert rotation (#11013)
  • Add e2e test which verifies traffic policies and firewall in services (#10972)
  • Update tcpproxy for import path change (#11029)
  • Bump Local Path Provisioner version (#10862)
  • Bump local-path-provisioner to v0.0.30 (#11049)
  • Bump helm-controller and klipper-helm (#11060)
  • Bump containerd to v1.7.22 (#11067)
  • Simplify svclb daemonset (#10954)
    • Stop using klipper-lb as the image for svclb. Replace it with a simple busybox which just sleeps
  • Add the nvidia runtime cdi (#11065)
    • Add nvidia cdi runtime to the list of supported and discoverable runtimes
  • Bump Trivy version (#11103)
  • Rollback GHA to Ubuntu 22.04 (#11111)
  • Revert “Make svclb as simple as possible” (#11109)
  • Fix Github Actions for Ubuntu-24.04 (#11112)
  • Bump aquasecurity/trivy-action from 0.24.0 to 0.27.0 (#11105)
  • Check the last 10 commits for upgrade E2E test (#11086)
  • Bump aquasecurity/trivy-action from 0.27.0 to 0.28.0 (#11138)
  • Fixes “file exists” error from CNI bins when upgrading k3s (#11123)
  • Reduce the number of GH api request for E2E nightly (#11148)
  • Update Kubernetes to v1.31.2-k3s1 and Go 1.22.8 (#11163)
  • Update stable channel to v1.30.6+k3s1 (#11186)
  • Fix timeout when defragmenting etcd on startup (#11164)
  • Capture all fedora atomic variants in install script (#11170)
    • Allow easier installation of k3s on all variants of fedora atomic that use rpm-ostree
  • Typo fixes in contributing.md (#11201)
  • Bump Trivy version (#11206)
  • Pin vagrant to older version to avoid known issue 13527 (#11226)
  • Set kine EmulatedETCDVersion from embedded etcd version (#11221)
  • Add nonroot-devices flag to agent CLI (#11200)
    • Device_ownership_from_security_context can now be enabled in the containerd CRI config by setting the --nonroot-devices flag or config key.
  • Bump runc to v1.2 (#10896)
  • Update flannel and base cni plugins version (#11188)
  • Bump github.com/golang-jwt/jwt/v4 from 4.5.0 to 4.5.1 (#11236)
  • Fix MustFindString returning override flags on external CLI commands (#11237)
  • Bump containerd to v1.7.23-k3s1 to fix registry rewrite token scopes (#11238)
  • Fix the “Standalone”-mode of oidc-login in the wrapped kubectl library (#11266)
    • Fixes ’no Auth Provider found for name “oidc”’ when using oidc-login in standalone mode.
  • Bump K3s-root version to v0.14.1 (#11282)
  • Bump kine (#11277)
  • Bump kine for mysql connection close fix (#11305)
  • Fix handling of wrapped subcommands when run with a path (#11306)
  • Fix updatecli config for klipper and helm-controller (#11290)
  • Fix issue with loadbalancer failover to default server (#11319)
  • Update localstorage_int_test.go reference (#11339)
    • Update localstorage_int_test.go reference in tests/integration/README.md
  • Add to the output command to be consistent with the product command (#11345)
  • Allow install script to print error on failed binary download (#11335)
  • Remove the go toolchain line (#11358)
  • Add ubuntu 24.04 apt command for e2e test (#11361)
  • Bump Trivy version (#11360)
  • Bump aquasecurity/trivy-action from 0.28.0 to 0.29.0 (#11364)
  • Convert legacy docker tests from bash to golang (#11357)
  • Update Kubernetes to v1.31.3-k3s1 (#11373)
  • Fix Branch Name logic for Dependabot and UpdateCLI pushes to k3s-io (#11376)
  • Fix INSTALL_K3S_PR support (#11383)
  • Fix etcd backup/restore test and add guardrail for etcd-snapshot (#11314)
  • Bump containerd to -k3s2 to fix rewrites (#11401)
  • Fix opensuse-leap install test (#11379)
  • Fix secrets-encrypt reencrypt timeout error (#11385)
  • Rework loadbalancer server selection logic (#11329)
  • Remove experimental from embedded-registry flag (#11443)
  • Update stable channel to v1.31.3+k3s1 (#11436)
  • Fix agent tunnel address with dedicated supervisor port (#11427)
  • Update coredns to 1.12.0 (#11387)
  • Bump Trivy version (#11430)
  • Update to v1.31.4-k3s1 and Go 1.22.9 (#11463)
  • Bump alpine from 3.20 to 3.21 in /conformance (#11433)
  • Fix docker check warnings (#11474)
  • Update stable channel to v1.31.4+k3s1 (#11483)
  • V1.32.0+k3s1 (#11478)
  • Switch to using kubelet config file for all supported flags (#10433)
  • Load kernel modules for nft in agent setup (#11527)

Embedded Component Versions

Component Version
Kubernetes v1.32.0
Kine v0.13.5
SQLite 3.46.1
Etcd v3.5.16-k3s1
Containerd v1.7.23-k3s2
Runc v1.2.1-k3s1
Flannel v0.25.7
Metrics-server v0.7.2
Traefik v2.11.10
CoreDNS v1.12.0
Helm-controller v0.16.5
Local-path-provisioner v0.0.30

As always, we welcome and appreciate feedback from our community of users. Please feel free to:

下载链接