常见问题

本文包含了用户常见的 Rancher Desktop 问题和解答。

问:Rancher Desktop 是 Rancher 的桌面版吗?

:不是。Rancher Desktop 不是桌面版 Rancher。

虽然 RancherRancher Desktop 的名字里都包含 Rancher,但它们的功能是有差别的。这两种解决方案相辅相成。

Rancher 是一个完整的软件堆栈,用于跨任何基础设施管理多个 Kubernetes 集群。

Rancher Desktop 在桌面上提供容器管理和 Kubernetes 实例,用于支持本地开发用例。

问:Rancher Desktop 中有 Kubernetes Cluster Explorer 吗?

:是的,Rancher Dashboard 作为功能预览包含在 1.2.1 版本中。你可以通过单击系统托盘菜单中的 Dashboard 选项来调用仪表板。

要了解有关 Rancher Desktop 的更多信息,请单击此处。 要了解有关 Rancher 的更多信息,请单击此处

问:我可以同时安装 Docker Desktop 与 Rancher Desktop 吗?

:可以,但它们不能同时运行,因为 Rancher Desktop 和 Docker Desktop 使用相同的 Docker socket(/var/run/docker.sock)。在启动一个之前,一定要先停止另一个。

问:如何彻底卸载 Rancher Desktop?

:首先,执行恢复出厂设置,然后卸载该应用程序。卸载过程因操作系统而异。如需更多信息,请参阅此处

问:Windows 上的 DNS VPN 有哪些支持(如果有)?

:Windows 的替代 DNS 解析器已实现,用来解决 Windows 上的某些 VPN 问题。它支持通过 VPN 连接进行 DNS 查找。它必须通过编辑内部配置文件手动启用。

问:“WSL 集成”选项卡有什么作用?

:它能使 Kubernetes 配置可以在显示的 WSL 发行版中访问,以便你使用 kubectl 之类的命令与 Kubernetes 进行通信。

问:我在哪里可以找到详细的日志?

:点击 Troubleshooting 标签,然后点击 Show Logs

问:如何为 Traefik Ingress Controller 启用仪表板?

:出于安全原因,Traefik 仪表板默认不公开。但是,你可以通过多种方式公开仪表板。你可以使用下面显示的两种方法之一。

使用 port-forward 来启用仪表板访问
  1. kubectl port-forward -n kube-system $(kubectl -n kube-system get pods --selector "app.kubernetes.io/name=traefik" --output=name) 9000:9000

在浏览器中访问 http://127.0.0.1:9000/dashboard/ 以查看 Traefik 仪表板。

使用 HelmChartConfig 来启用仪表板访问

将以下说明复制到文件中,例如 expose-traefik.yaml

  1. apiVersion: helm.cattle.io/v1
  2. kind: HelmChartConfig
  3. metadata:
  4. name: traefik
  5. namespace: kube-system
  6. spec:
  7. valuesContent: |-
  8. dashboard:
  9. enabled: true
  10. ports:
  11. traefik:
  12. expose: true # Avoid this in production deployments
  13. logs:
  14. access:
  15. enabled: true

运行命令:

  1. kubectl apply -f expose-traefik.yaml

在浏览器中访问 http://127.0.0.1:9000/dashboard/ 以查看 Traefik 仪表板。

问:如何禁用 Traefik,这样会删除 Traefik 资源吗?

:是的,你可以禁用 Traefik 以释放端口 80 和 443 用于备用 ingress 配置。禁用 Traefik 不会 删除现有资源。Kubernetes Settings 下会默认选择 Enable Traefik 功能,取消选中此框即可禁用它。

如果要删除 Traefik 资源,请在 UI 的 Kubernetes Settings 面板上单击 Reset Kubernetes

问:是否支持内部容器端口转发?

:是的,从 v1.1.0 起,所有三个平台(Windows、Linux 和 macOS)都支持此功能。

问:文件共享的工作原理与 Docker Desktop 类似吗?是否必须进行任何其他配置才能将卷挂载到 VM?

:目前默认共享以下目录:macOS 上为 /Users/$USER,Linux 上为 /home/$USER,二者均共享 /tmp/rancher-desktop。对于 Windows,所有文件都通过 WSL2 自动共享。

通常无法开箱即用地从主机访问标准的 Docker 卷。

要访问 Linux/macOS 上的其他目录,你必须进行额外的配置。

如果要改变挂载的行为,你也需要进行额外的配置

问:容器是否能通过 host.docker.internal 回到主机服务?

:是的。在 Windows 上,你可能需要创建防火墙规则来允许主机和容器之间的通信。你可以在特权 powershell 中运行以下命令来创建防火墙规则:

  1. New-NetFirewallRule -DisplayName "WSL" -Direction Inbound -InterfaceAlias "vEthernet (WSL)" -Action Allow

问:我不需要 Rancher Desktop 部署的 Kubernetes 集群;如何禁用它以节省资源?

:打开 Rancher Desktop 设置,点击齿轮打开 Preferences,选择 Kuberentes 选项卡,然后取消勾选 Kubernetes Settings 下的 Enable Kubernetes 功能以禁用它。

这将允许你在不为 Kubernetes 分配资源的情况下仅运行 containerddockerd

问:Kubernetes Image Manager (kim) 发生了什么?

:从 1.0 版本开始,Kim 不再被支持,而且已被 nerdctl 和 Docker CLI 取代。

问:为什么运行 brew install rancher 时出现 It seems there is already a Binary at '/usr/local/bin/<BINARY>' 的错误?

:如果支持 Rancher Desktop 的工具(Helm、kubectl、nerdctl、docker)已经由 Homebrew 管理,那么由于 Homebrew cask 公式的定义方式,安装会失败。你可以使用 Mac 应用程序进行安装来避免这个问题。

问:我通过 Arch User Repository 安装了 nerdctl,但它不能与 Rancher Desktop 一起使用,为什么?

:对于 Rancher Desktop,nerdctl 必须在 VM 内部而不是在主机上运行。与 Rancher Desktop 一起打包的主机版本只是一个 shell wrapper,用于在 VM 内执行命令。

问:Support Utilities 页面(Rancher Desktop <1.3.0)上的工具未安装,我看到 Insufficient permission to modify /usr/local/bin 错误,我该如何解决?

:当你没有 /usr/local/bin 的权限时就会发生这种情况。改善权限处理的长期解决方案正在开发中。同时,一个临时的解决方法是通过运行 sudo chown $USER /usr/local/bin 来更改 /usr/local/bin 的权限。当你能够写入目录时,Rancher Desktop 就能够创建符号链接。

从 1.3.0 及更高版本开始,我们不再在 /usr/local/bin 中创建符号链接,而是在 ~/.rd/bin 中创建符号链接,并将该目录放在 PATH 中,这样可以避免处理 /usr/local/bin 的写权限和文件冲突。我们强烈建议你升级到最新版本的 Rancher Desktop。

问:Cygwin 与 Rancher Desktop 兼容吗?

:没有,但我们有增加兼容性的计划。

问:如何将 Rancher Desktop 添加到 Windows 的启动程序列表中?

:在 Windows 上,你可以通过不同的方式将程序添加到启动程序列表中。例如,你可以执行以下步骤:

  1. 按 Windows+R 打开运行对话框。
  2. 输入 shell:startup,然后按 Enter 打开 Startup 文件夹。
  3. 从桌面复制“Rancher Desktop”快捷方式并粘贴到 Startup 文件夹中。
  4. 重新启动主机。

问:Rancher Desktop 实际将数据卷放在哪里?

Windows: 打开运行菜单(按 Windows + R)并打开下面的路径(具体取决于活动的容器运行时):

  1. dockerd(moby): \\wsl$\rancher-desktop-data\var\lib\docker\volumes
  2. containerd: \\wsl$\rancher-desktop-data\var\lib\nerdctl\dbb19c5e\volumes\<namespace>

macOS 和 Linux: 根据活动的容器运行时,在 (lima) VM 中导航到下面的路径。你可以使用 rdctl shell 访问 VM 中的这些路径。

  1. dockerd(moby): /var/lib/docker/volumes
  2. containerd: /var/lib/nerdctl/dbb19c5e/volumes/<namespace>

问:如何将 Rancher Desktop 降级到旧版本

:我们强烈建议你使用包含最新功能和错误修复的当前发行版。但是,如果你想降级到较早的版本,请按照以下步骤操作。

  1. 执行 Troubleshooting > Factory Reset。请确保没有Factory Reset 对话框中选中 Keep cached Kubernetes images
  2. 按照适用于你操作系统的卸载说明卸载当前版本。
  3. 安装你所需的旧版本。

问:从休眠状态唤醒 Windows 计算机后,Rancher Desktop 无响应。如何在不重启机器的情况下让 Rancher Desktop 会话再次运行?

:WSL bug 导致 WSL 在某些 Windows 配置上休眠后无响应。虽然 WSL bug 尚未解决,但 GitHub issue 上也讨论了各种解决方法,你可以在不重启机器的情况下使 WSL 和 Rancher Desktop 再次工作。你可以按照以下步骤操作。

  1. 通过 wsl --shutdown 命令关闭 WSL。如果 wsl --shutdown 命令成功,则跳转到步骤 3。
  2. 停止并重启 LxssManager 服务。
  • Powershell
  • GUI

  • 停止 LxssManager 服务。

  1. stop-service lxssmanager
  • 启动 LxssManager 服务。
  1. start-service lxssmanager

使用命令 services.msc 打开计算机上运行的服务列表。在列表中找到 lxssmanager 服务,右键单击它,然后选择 StopStart 来停止和启动该服务。

  1. 退出并重新启动 Rancher Desktop。