macOS docker 安装 rancher ,k3s 启动报错。

Rancher Server 设置

  • Rancher 版本:v2.6.5
  • 安装选项 (Docker install/Helm Chart): Docker install
    • 如果是 Helm Chart 安装,需要提供 Local 集群的类型(RKE1, RKE2, k3s, EKS, 等)和版本:
  • 在线或离线部署:在线

下游集群信息

  • Kubernetes 版本: k3s
  • Cluster Type (Local/Downstream):
    • 如果 Downstream,是什么类型的集群?(自定义/导入或为托管 等):

用户信息

  • 登录用户的角色是什么? (管理员/集群所有者/集群成员/项目所有者/项目成员/自定义):
    • 如果自定义,自定义权限集:

问题描述:
macos 安装的 ,启动后 提示
[INFO] Waiting for server to become available: Get “https://127.0.0.1:6444/version?timeout=15m0s”: dial tcp 127.0.0.1:6444: connect: connection refused
[FATAL] k3s exited with: exit status 1

重现步骤:

结果:

预期结果:

截图:

其他上下文信息:

日志

盲猜是由于较新版本的docker desktop使用了cgroupv2引起的,使用cgroupv2本身并没有错,一些今年发布的Linux发行版也都开始切换到cgroupv2,这也是大势所趋。
不过,Rancher server的docker镜像,还要考虑历史兼容的问题,所以server内置的k3s还不兼容cgroupv2的方式。

你可以使用 docker info 来确定使用的cgroup 版本。

将docker desktop的cgroup版本切回到v1也比较简单,docker desktop的release notes就有说明:Docker Desktop release notes | Docker Documentation

Added a deprecated option to settings.json: "deprecatedCgroupv1": true, which switches the Linux environment back to cgroups v1. If your software requires cgroups v1, you should update it to be compatible with cgroups v2. Although cgroups v1 should continue to work, it is likely that some future features will depend on cgroups v2. It is also possible that some Linux kernel bugs will only be fixed with cgroups v2.

settings.json 的路径:~/Library/Group\ Containers/group.com.docker/settings.json