【Release】Rancher Desktop v1.25.0 正式发布!

Rancher Desktop 1.25.0 是一个开源桌面应用,可在 macOS、Windows 和 Linux 上提供 Kubernetes 与容器管理能力。

安装程序

新贡献者

感谢我们的新贡献者:@srtdog64、@PlayerNguyen、@Harshavardhan-28 和 @Juhantam!

1.25.0 Release Notes

新增内容

界面支持越南语

在 Preferences > Application > General 中选择 Vietnamese。它加入了 1.24.0 新增的八种语言,并且与这些语言一样仍处于实验阶段,因此欢迎越南语母语用户反馈。应用通常使用的字体缺少大多数越南语重音字母,因此越南语文本会改用系统中已安装的字体。感谢 @PlayerNguyen!(#11004)

删除容器和卷前会先确认

Containers 和 Volumes 页面上的 Delete 操作过去会在点击后立即执行;现在这两个页面都会先弹出确认对话框,显示容器或卷的数量并按名称列出。Cancel 是默认按钮,因此按 Esc 和 Enter 都会退出。(#10957)

表格每页最多显示 1000 行

Containers 和 Volumes 页面以前一次只显示 10 行。Forwarding 和 Diagnostics 页面显示 100 行。现在它们最多显示 1000 行。(#10958)

rdctl start --wait

rdctl start 过去会在启动应用后立即返回,因此随后运行 docker 或 kubectl 的脚本可能会与后端启动过程产生竞争。新的 --wait 标志会让 rdctl start 在后端启动完成后返回;如果后端报告错误或 --wait-timeout(默认 10 分钟)超时,则会失败。此时容器引擎已经可以使用。当 Rancher Desktop 已在运行时,--wait 存在两个问题,详见 Known Issues。(#6915)

macOS 和 Linux:新安装默认通过 gRPC 转发端口

新安装以及 factory reset 后的安装现在会通过 Lima 的 gRPC 端口转发器来转发已发布端口和 Docker socket,而不是使用 SSH。在 macOS 上,SSH 转发器一次只能保持大约 1000 个连接。超过该限制后,1.24.0 会丢失所有已发布端口和 Docker socket,直到 Rancher Desktop 重启;而 1.25.0 会保持它们继续工作,并只拒绝额外连接。gRPC 转发器会把这些连接保留在 Lima 的 host agent 中,不受该限制影响。现有安装会继续使用已保存的转发器;如需切换,请运行 rdctl set --experimental.virtual-machine.ssh-port-forwarder=false。(#11235)

Bug Fixes

Windows:Docker 启动后不久停止响应

从 1.23.0 开始,使用 moby 引擎时,WSL 发行版内部的健康检查每次都会失败。每次启动约一分钟后,失败的检查会停止从 Windows 转发 Docker 请求的代理;在某些机器上,该代理会一直停止,直到 Rancher Desktop 重启。从 Windows 执行 Docker 命令随后会因 “timed out dialing Hyper-V socket” 而失败,并且 docker.log 可能每几秒增长一兆字节。现在健康检查会再次通过,代理在停止后也会重新启动。(#10739)

Windows:启动可能卡在 “Waiting for Kubernetes API”

Rancher Desktop 可能会一直等待已经在运行的 Kubernetes 集群,因为它会按 WSL 网络设置推导出的地址查找集群。对于 WSL 选择的部分网络范围,该查找会失败;在 WSL 的 VirtioProxy 网络模式下则总是失败。WSL 每次启动都会选择新的范围,因此该卡住问题时有时无。Rancher Desktop 现在会在 127.0.0.1 检查 API,也就是 Windows 用来访问它的地址。Kubernetes 使用 6443 以外端口时,过去也会导致 Windows 无法访问 API;现在也已修复。(#10657)

Windows:guest agent 日志可能占满磁盘

即使 debug mode 关闭,rancher-desktop-guestagent.log 也会记录 debug 消息;因此一旦容器开始运行,日志可能持续增长直到磁盘被占满。现在 guest agent 只会在 Troubleshooting 页面勾选 Enable debug mode 时记录 debug 消息。(#10737)

Windows:PORT 环境变量会破坏 Docker

如果启动 Rancher Desktop 的环境设置了 PORT 变量,那么从 Windows 转发 Docker 请求的进程会把它当作自己的端口,从而失败并每秒重启,导致 Docker 在 Windows 上完全不可用。现在它会忽略该变量。(#10946)

Windows:已发布 UDP 端口只能在 localhost 上响应

使用 per-machine 安装(即所有用户可用的安装方式)时,其他机器无法访问容器已发布的 UDP 端口。安装程序为 host-switch.exe 配置的防火墙例外只允许 TCP;现在也允许 UDP。(#10965)

Windows:容器中的 ping 总是收到回复

在 Windows 上,Rancher Desktop 的网络栈会自行响应来自容器的每一个 ping,因此即便目标地址没有机器存在,ping 也会报告收到回复。现在 ping 会发往真实地址,容器只会看到实际返回的回复。(#11127)

Windows:容器重启后 127.0.0.1 端口可能停止响应

使用 moby 引擎时,一个容器可以在 127.0.0.1 上发布多个端口。当这样的容器停止时,Rancher Desktop 只会删除其中一个端口的转发规则。如果该容器随后以不同 IP 地址启动,访问它其他端口的连接会转到旧地址并超时,直到 Rancher Desktop 重启。Rancher Desktop 现在会删除所有相关规则。(#11138)

macOS:每次 Kubernetes 启动后出站连接会失败约一分钟

使用 VZ 虚拟机类型(默认)且启用 Kubernetes 时,Kubernetes 启动时会尝试访问 metrics server 在上一次启动中使用的地址。当本地网络静默丢弃这些尝试时,它们会占满虚拟机网络栈用于进行中连接的全部 10 个槽位。随后虚拟机发起的每一个新的出站 TCP 连接都会失败,直到这些尝试约一分钟后超时;因此在这一分钟内拉取镜像会因 dial tcp ...: i/o timeout 失败。内置 Lima 现在允许 128 个进行中连接,并在 30 秒后放弃每个连接。(#11136)

启动错误显示了误导性消息

当虚拟机无法在 macOS 或 Linux 上启动时,错误对话框可能会显示 “Invalid state, no container engine client available”,而真正原因(例如 Kubernetes 下载失败)只出现在日志中。启动后立即用 rdctl snapshot create 创建快照也可能在任意平台触发同样消息。它还可能让 Rancher Desktop 报告启动失败,或在使用 --no-modal-dialogs 启动时退出。现在对话框会显示真实错误,并且启动后立即创建快照不会再导致这些问题。(#8525, #11264)

Docker 每隔几秒记录 “dangling” 警告

启用 Kubernetes 且 moby 引擎使用 containerd image store 时,每次 Kubernetes 启动都会重新加载内置镜像,Docker 会为每个镜像保留一条过期记录。随后 docker.log 每十秒会新增大约六条 “multiple images have the same target, but one of them is still dangling” 警告。对于 2025 年 7 月下旬以来发布的每个 k3s release,Rancher Desktop 现在只加载缺失的镜像;较旧的 k3s 版本仍会加载全部镜像。Docker 无法删除早前启动留下的记录,但 factory reset 可以清除它们。底层 Docker bug 是 moby/moby#53561。(#10876)

Pods 继承了 host 的 DNS search domains

在 macOS 和 Linux 上,pods 会继承 host 网络的 DNS search domains,并在名称本身之前先尝试这些域。一些 search domains 会通过公共通配符记录或会响应本地域下所有内容的路由器,对并不包含的名称也返回响应。因此,这类 search domain 会把 pod 对外部名称的查询发送到错误地址,并且完整 svc.cluster.local 名称的查询也可能失败。Pods 现在不再获取 host 的 search domains,因此也不能再通过它们解析短名称;如果 pod 需要某个 search domain,可以设置 dnsConfig.searches。(#2227, #6316, #8380)

关闭 Traefik 后它可能仍在运行

关闭 Traefik 时,Rancher Desktop 会同时删除它的两个 Helm charts。如果包含 Traefik custom resource definitions 的 chart 先被删除,Helm 就无法卸载 Traefik,其 pods 会继续运行。Rancher Desktop 现在只删除 Traefik chart,并把 definitions chart 留给 k3s;k3s 会在几秒后删除它。在速度较慢的机器上,这仍可能发生在 Traefik 删除完成之前。(#11265)

Kubernetes 禁用状态下 factory reset 后不会提示更新

factory reset 后,如果 Rancher Desktop 在 Kubernetes 禁用状态下运行,更新检查可能无法保存结果,因此永远不会提示更新,只会每十分钟重试一次。现在无论 Kubernetes 是否开启,更新检查都可以正常工作。(#10964)

Containers 页面多选功能损坏

Containers 页面中的 Shift-click 和 Ctrl-click(macOS 上为 Cmd-click)选择在多个场景下出现问题。带修饰键点击容器名称会打开详情页而不是选择该行;取消选择某一行可能会取消选择另一行;对已选中行执行 Shift-click 后仍会保留范围选择;并且每当列表刷新(每个容器事件都会触发刷新)时选择会消失。多选功能现在恢复正常。感谢 @Juhantam!(#11005)

Containers 页面在容器名称前显示斜杠

1.24.0 对 extensions 的修复带来了一个副作用:Containers 页面上的每个名称前都会出现前导斜杠(/web)。现在斜杠已移除。感谢 @srtdog64!(#10717)

Standalone Containers 标签一直显示为英文

Containers 页面会把不属于 Compose project 或 Kubernetes pod 的容器归类到 Standalone Containers 下。无论选择什么语言,该标签过去一直保持英文;现在已支持翻译。感谢 @Harshavardhan-28!(#11022)

设置校验允许格式错误的值通过

6443oops 这样的端口会被变成 6443,2.5 这样的 CPU 数量会进入虚拟机配置,而把 null 或列表放在一组设置的位置会被忽略或导致内部错误。Rancher Desktop 现在会以校验错误拒绝这些值。感谢 @srtdog64!(#10755, #10784, #10915)

Tachometer extension 无法安装

Extensions catalog 列出的 Tachometer 版本已不在 Docker Hub 上;较新版本则因为需要 Docker Desktop 提供给 extensions 的 theme 而显示空白页。Rancher Desktop 现在提供了该 theme,并且 catalog 提供 Tachometer 0.2.6。(#10882)

Linux:AI Workbench 无法安装 Ollama

Ollama 0.14 更改了 Linux 下载包格式,因此 AI Workbench 0.2.0 每次尝试在 Linux 上安装 Ollama 都会失败。Extensions catalog 现在提供 AI Workbench 0.3.0,可再次完成安装。(#10980)

Security

macOS:任何以当前用户身份运行的进程都可通过 admin-access 提示获得 root

Rancher Desktop 会把 Lima 的 networks.yaml 中的值复制到 sudoers 文件中;该文件可由你的用户账户编辑,而 sudoers 文件是在 admin-access 提示后以 root 身份安装的。因此,任何以你的身份运行的进程都可以编辑 networks.yaml,向 sudoers 文件写入一行来获得 root。Rancher Desktop 现在会将地址并非全部为 IPv4 的 networks.yaml 重命名为 networks.orig.yaml,并改用默认网络;同时它会拒绝传给 root 命令路径中的 shell 语法。(#11137)

Rancher Desktop 信任了已泄露的 eMudhra 证书颁发机构

任何人都可以从八个 eMudhra 中间证书颁发机构的证书中恢复其私钥,并据此签发 Rancher Desktop 1.24.0 会接受的 TLS 证书,包括应用内以及虚拟机内部。1.25.0 不再在应用、复制到虚拟机的 host CA certificates、虚拟机镜像或 WSL 发行版、其 Go 程序以及 Spin apps 中信任这些证书颁发机构。(#11197)

Windows:发布在 127.0.0.1 上的端口可能被其他机器访问

在 WSL 的 consomme 网络模式下,其他机器可以通过随机端口访问发布在 127.0.0.1 上的端口。当 WSL 无法创建 NAT 网络时会回退到 consomme,因此即使 WSL 设置没有变化也可能发生这种情况。WSL 3.0.3 会对失败的绑定报告成功,导致 Rancher Desktop 用来把端口转发到其他 WSL 发行版的 listener 监听所有地址。Rancher Desktop 现在会关闭未获得所请求地址的 listener。(#11244)

更新组件

Rancher Desktop 1.25.0 将以下组件更新到修复安全公告的版本,其中四个安全公告评级为 critical。

  • Linux kernel 6.18.37 → 6.18.60,位于虚拟机中。
    • 在 Windows 上,kernel 来自 WSL,因此请运行 wsl --update 以获取 WSL kernel 6.18.58.1 或更高版本。
  • containerd 2.3.2 → 2.3.7,Docker Engine 29.5.3 → 29.9.2,位于虚拟机和 WSL 发行版中。
  • Spin 4.0.2 → 4.2.6,containerd-shim-spin 0.25.1 → 0.27.2。
  • docker CLI 29.6.2 → 29.9.3,docker-buildx 0.35.0 → 0.38.2。
  • Lima 2.1.2 → 2.3.0 的开发构建版本。

Known Issues

Rancher Desktop 已在运行时使用 rdctl start --wait

当 Rancher Desktop 已在运行时,不带设置标志的 rdctl start --wait 会因 start command: no settings to change were given 失败。如果传入了需要重启的设置,并且后端仍在启动,它可能会在重启开始之前返回。(#11257)

弃用

Rancher Desktop 1.26 将移除对早于 1.32 的 Kubernetes 版本支持

如果你使用早于 1.32 的 Kubernetes 版本,请趁 Rancher Desktop 1.25 仍允许回退时迁移到 1.32 或更高版本。先创建快照,在 Preferences > Kubernetes 中选择新版本,并确认你的 workloads 仍可运行;如果不能运行,则恢复快照。

当 Rancher Desktop 1.26 启动时发现选择了较旧的 Kubernetes 版本,它会将 Kubernetes 升级到最新的 1.32 release。该升级可能一次跨越多个 Kubernetes minor version,并可能破坏你的 workloads。恢复在旧版本上创建的快照也会触发同样升级,因此请用在 1.32 或更高版本上创建的新快照替换这类旧快照。

如果 deployment profile 锁定了较旧版本,Kubernetes 将无法启动,直到你修改该 profile。(#11300)

内置工具更新(相对于 Rancher Desktop 1.24.0)

  • docker 29.6.2 → 29.9.3
  • docker-compose 5.3.1 → 5.7.0
  • docker-buildx 0.35.0 → 0.38.2
  • docker-credential-helpers 0.9.8 → 0.9.12
  • helm 4.2.3 → 4.3.1
  • kuberlr 0.7.0 → 0.9.0
  • trivy 0.72.0 → 0.76.1
  • spin 4.0.2 → 4.2.6
  • spin-shim 0.25.1 → 0.27.2
  • cert-manager 1.21.0 → 1.21.3

未变化:

  • nerdctl 2.2.2
  • amazon-ecr-credential-helper 0.12.0
  • spin-operator 0.6.1
  • spin-plugin-kube 0.4.0

与开发者联系

Changelog

从 v1.24.0 开始的完整版本 changelog 可通过 GitHub compare 查看;该 release 的详细信息可在 v1.25.0 milestone 中查看。


原文发布地址: rancher-sandbox/rancher-desktop v1.25.0