单机体验版本
通过快速安装脚本安装的 Rainbond 是属于单机体验版本,如果在安装时出现问题,请根据当前的文档进行排查问题。
启动流程
Rainbond 单机体验版本 是将所有的服务都运行在一个容器中,方便用户快速使用,采用了 dind (Docker in Docker) 的技术,所有的排查操作都在 rainbond-allione
这个容器环境中进行。
在整个安装过程中,会按照以下顺序依次启动服务:
- 启动 Containerd 服务,由 Supervisord 控制启动。
- 日志路径:
/app/logs/containerd.log
- 日志路径:
- Load 容器镜像包。
- 启动 K3s 服务,由 Supervisord 控制启动。
- 日志路径:
/app/logs/k3s.log
- 日志路径:
- 启动 Rainbodn Region。
- 运行在 K3s 之上,以 POD 运行。
- 启动 Rainbond Console,由 Supervisord 控制启动。
排查思路
整个排查的过程,也将围绕这些任务的执行情况开展。
开始排查之前,启动新的终端,执行以下命令,进入 rainbond-allinone
容器环境中:
docker exec -it rainbond-allinone bash
启动 Containerd 阶段
rainbond-allinone
容器中会启动一个以后台进程方式运行的 Containerd 服务,后续会通过它启动和管理一系列的容器。
如果 Containerd 启动失败,你将会在 rainbond-allinone
的启动日志中看到:
ERROR: Containerd failed to start. Please use the command to view the containerd log 'docker exec rainbond-allinone /bin/cat /app/logs/containerd.log'
根据日志中的命令,执行命令查看 Containerd 日志:
tail -f /app/logs/containerd.log
根据 Containerd 日志排查错误,结合 Containerd 官方文档 进行查询。
Load 镜像阶段
在 Load 镜像阶段,使用 nerdctl 工具进行 load
。
如果您遇到 Load 失败,该阶段会一直循环 Load。
Load 镜像常见问题
如果在 Win、Mac 上部署并使用 -v local:/app/data
将数据挂载到了本地,将会 遇到 Load 失败的现象,这是因为本地的存储与 Docker 存储驱动不一致导致的。
需要将存储修改为 Docker Volume 卷的方式挂载可解决问题。
启动 K3s 阶段
rainbond-allinone
容器中会启动一个以后台进程方式运行的 K3s 服务,作为容器内部的编排工具。
如果 K3s 启动失败,你将会在 rainbond-allinone
的启动日志中看到:
ERROR: K3s failed to start. Please use the command to view the k3s log 'docker exec rainbond-allinone /bin/cat /app/logs/k3s.log
根据日志中的命令,执行命令查看 K3s 日志:
tail -f /app/logs/k3s.log
根据 K3s 日志排查错误。
k3s常见问题列表
Failed to create cgroup" err="cannot enter cgroupv2 \"/sys/fs/cgroup/kubepods\" with domain controllers -- it is in an invalid state
在早些版本的 rainbond-allinone 中,尚未支持 cgroupv2。而 cgroupv2 在高于 4.2.0 版本的 Docker Desktop 中被应用,这导致了冲突。所以请降级 Docker Desktop 到 4.2.0 版本及以下。或使用最新版本的单机体验版本的 Rainbond。
level=info msg="Set sysctl 'net/netfilter/nf_conntrack_max' to 196608
level=error msg="Failed to set sysctl: open /proc/sys/net/netfilter/nf_conntrack_max: permission denied