Polar
1
国内网络使用docker部署
docker run -d --restart=unless-stopped --privileged -p 10080:80 -p 10443:443 -e TZ=Asia/Shanghai -e CATTLE_SYSTEM_DEFAULT_REGISTRY=registry.cn-hangzhou.aliyuncs.com -e CATTLE_BOOTSTRAP_PASSWORD=rancher -v /data/rancher:/var/lib/rancher registry.cn-hangzhou.aliyuncs.com/rancher/rancher:v2.9.0
local集群会报错,并在创建rke2自定义集群时不成功,会卡住。
试了v2.9.0 v2.8.6 v2.8.5都一样的问题
ksd
2
这个问题是由于docker run 的时候映射目录导致。
因为通过 docker run
启动的 Rancher 镜像中内置了 rancher/mirrored-coredns-coredns
和 rancher/mirrored-pause
这两个镜像的 tar 包,这样在离线环境上也能自动启动这两个服务。
但是这两个镜像的离线 tar 包默认存储在了 /var/lib/rancher/k3s/agent/images/k3s-airgap-images.tar
。
当通过 docker run 来启动 Rancher 时,通过 -v 将 Rancher 的数据目录(/var/lib/rancher) 映射到本地之后,导致了容器中的 /var/lib/rancher 使用的是主机的空目录。也就是说新启动的 Rancher 中缺少了这个离线的 tar 包,而且,CATTLE_SYSTEM_DEFAULT_REGISTRY
对这两个 pod 不生效。现阶段国内网络使用 docker hub 有问题,所以导致了 rancher/mirrored-coredns-coredns
和 rancher/mirrored-pause
拉取失败。
为了解决这个问题,可以:
- 取消映射的目录,这样就可以使用容器内置的离线 tar 包启动这两个服务。
- 手动从镜像中获取
/var/lib/rancher/k3s/agent/images/k3s-airgap-images.tar
,并传到对应目录下,例如:
root@ksd:~# mkdir -p /data/rancher/k3s/agent/images/
root@ksd:~# docker run --rm --entrypoint "" -v $(pwd):/output rancher/rancher:v2.9.0 cp /var/lib/rancher/k3s/agent/images/k3s-airgap-images.tar /output/k3s-airgap-images.tar
root@ksd:~# ls
docker.sh k3s-airgap-images.tar snap
root@ksd:~# cp k3s-airgap-images.tar /data/rancher/k3s/agent/images/
root@ksd:~# docker run -d --restart=unless-stopped --privileged \
-p 10080:80 -p 10443:443 \
-e CATTLE_SYSTEM_DEFAULT_REGISTRY=registry.cn-hangzhou.aliyuncs.com \
-e CATTLE_BOOTSTRAP_PASSWORD=rancher \
-v /data/rancher:/var/lib/rancher \
registry.cn-hangzhou.aliyuncs.com/rancher/rancher:v2.9.0
8b62637c72cfb4b3704d5811f8e9bbd37bd05a93c9155465e776b5e0481f5465
从 UI 查看 pod,可查看到 pod 都启动成功:
1 个赞
今天正好遇到这个问题,已经按照大佬的方式,安装成功了。太感谢了!
Polar
9
docker环境有配置加速地址,按照官方的回答,不挂载目录是可以成功的,创建集群也正常。
docker环境如何配置加速地址,可以参考我这篇博客:https://4xx.me/archives/1718091616744
111
11
我用的rancher2.7.5 也是报上边的错误,按照您说的步骤,把2.9.0 换成2.7.5执行 不成功 还是报一样的错误,怎么办。
111
12
还是报这个错误,怎么解决呢? centos7内核5.4 runcher2.7.5
111
15
ksd
17
你到已安装应用里看看,如果都成功了,那就没必要在乎这些错误,因为可能是第一次启动的时候失败了,后来尝试之后成功了。
ksd
19
右上角切下 namespace,切换到 所有命名空间
ksd
24
在 ui 上进入 local 的 shell 页面,执行:helm -n cattle-fleet-system history fleet
,查看是否有 pending 状态的,如果有,就用 helm rollback
恢复到上一个可用的版本。