rancher创建k8s集群步骤报错:Failed to create fleet-default/master cluster.x-k8s.io/v1beta1, Kind=Cluster for

背景

手动部署k8s集群总会遇见一堆问题,这里特别强调版本问题,找资料的时候一定要看官网上的版本对应哦,鉴于手动部署的困难性,我们使用国产rancher进行部署,但是也要注意版本问题。
使用rancher(https://www.rancher.cn/)安装部署k8s集群的时候报错:

Failed to create fleet-default/master cluster.x-k8s.io/v1beta1, Kind=Cluster for rke-cluster fleet-default/master: Internal error occurred: failed calling webhook “default.cluster.cluster.x-k8s.io”: failed to call webhook: Post “https://webhook-service.cattle-system.svc:443/mutate-cluster-x-k8s-io-v1beta1-cluster?timeout=10s”: service “webhook-service” not found

步骤

分析:请移步官方论坛:官方论坛原创解决方式以及描述,原创点此链接

这个问题是由于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,并传到对应目录下,例如(这里注意自己的版本问题,这里用的是2.9.0,我用的是2.7.5):

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

我的是2.7.5

root@ksd:~# mkdir -p /data/rancher/k3s/agent/images/
root@ksd:~# docker run --rm --entrypoint "" -v $(pwd):/output rancher/rancher:v2.7.5 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.7.5

由于已经指定了密码,所以当你登陆的时候
直接输入密码rancher即可,无需重新设置。

在这里插入图片描述
在这里插入图片描述

即可正常创建集群

总结

多看帮助,少走弯路,而且在执行命令的时候要知道执行的大概是什么意思,不然做这件事情毫无意义。

其次感谢rancher 中文论坛中人们的热心帮助,他们是普渡终生的人,给很多人带来了帮助,感谢他们。

根据引用\[1\]中的信息,报错信息是"Failed to deploy 'XXX Dockerfile: XX/XXX/docker/Dockerfile': Can't retrieve image ID from build stream"。这个错误通常是由于无法从构建流中获取镜像ID引起的。根据引用\[2\]中的信息,可以尝试在k8s节点上安装Docker,如果节点主机上已经安装了Docker,则需要先卸载并重新安装。可以使用以下命令卸载Docker及其依赖包: ``` yum remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-engine ``` 然后,使用以下命令安装Docker: ``` yum install epel-release -y ``` 根据引用\[3\]中的信息,可以使用离线方式安装Docker仓库。首先,将Docker相关文件复制到/usr/bin/目录下: ``` cp docker/* /usr/bin/ ``` 然后,创建Docker服务配置文件: ``` cat>/usr/lib/systemd/system/docker.service<<EOF \[Unit\] Description=Docker Application Container Engine Documentation=https://docs.docker.com After=network-online.target firewalld.service Wants=network-online.target \[Service\] Type=notify ExecStart=/usr/bin/dockerd --data-root /data/docker ExecReload=/bin/kill -s HUP $MAINPID LimitNOFILE=infinity LimitNPROC=infinity LimitCORE=infinity TimeoutStartSec=0 Delegate=yes KillMode=process Restart=on-failure StartLimitBurst=3 StartLimitInterval=60s \[Install\] WantedBy=multi-user.target EOF ``` 最后,重新启动Docker服务: ``` systemctl daemon-reload systemctl restart docker ``` 这样应该能够解决报错问题。如果问题仍然存在,请提供更多详细的错误信息以便进一步排查。 #### 引用[.reference_title] - *1* [微服务模块部署到Docker](https://blog.csdn.net/weixin_44318522/article/details/123520154)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [RKE部署Rancher v2.5.8 HA高可用集群 以及常见错误解决](https://blog.csdn.net/Michaelwubo/article/details/124489478)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

balance…

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值