在部署过程中曾经试过的版本:1.X(单机版rancher),2.4.X(经典集群),2.6.X(k3s),本篇文章记录下在部署过程中遇到的问题
一、问题记录
rancher2.6.X问题汇总
报错:k3s exited with: exit status 255
操作:物理机突然断电,系统恢复以后
结果:历时一个周,未能解决上述问题。服务器使用部署过一次rancher2.6.X之后,删除docker后,再次使用相同的命令执行后,报上述错误;猜想是部署rancher后,在服务器中留下了部分缓存,未能定位到目录位置,导致报错。
报错:websocket disconnect
操作:正常部署完成rancher2.6.X,使用过程中
现象:在创建集群和使用时,会经常出现websocket异常,导致页面需要重新加载。
结果:导致问题的原因是使用了rancher自身提供的证书,浏览器对其不信任,无法进行websocket通信,解决方法是需要使用自带证书进行部署rancher。
rancher2.4.X问题汇总
报错:工作负载coredns中的timeout错误
操作:机器1,只部署了rancher;机器2,部署了ectd、control、worker;机器3,只部署了worker;
现象:按照上述操作完成后,机器3的coredns服务,始终报timeout,ping了docker内的ip,不通;
结果:最终得到有效解决,将机器1的操作系统从AlimaOS 8.5换成了Centos 7.9,上述问题得到了有效解决,目前怀疑是系统问题。
二、最终集群调研结果
最终决定选择使用rancher2.4.9,该版本是经过一周调查后,最稳定,并且将所有问题排除的版本。
三、rancher2.4.9使用记录
部署相关命令记录:
1、安装 portainer 远程管理工具:
使用portainer方便查看docker的输出日志,以及进入容器进行操作,是一个可视化的服务器docker管理工具
docker run -d -p 9000:9000 --restart=always -v "/var/run/docker.sock:/var/run/docker.sock" --name prtainer portainer/portainer
2、rancher2.4.9的docker部署命令:
2.1 使用自己的域名证书:
sudo docker run -d --privileged --restart=unless-stopped -p 80:80 -p 443:443 -v /home/key/XXX.com.crt:/etc/rancher/ssl/cert.pem -v /home/key/XXX.com.key:/etc/rancher/ssl/key.pem rancher/rancher:v2.4.9 --no-cacerts
2.2 使用rancher提供的证书:
sudo docker run -d --privileged --restart=unless-stopped -p 80:80 -p 443:443 -v /var/lib/rancher/ rancher/rancher:v2.4.9
安装完成后,获取初始密码的命令:docker logs 容器ID 2>&1 | grep “Bootstrap Password:”
3、rancher1.X(单机版)部署命令:
只是单纯的记录下单机版rancher的部署指令,不用做集群部署
sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/server
4、一键清除全部rancher环境:
使用本命令可以将一台服务器的rancher2.4.X环境完全移除,包括安装在宿主机中的缓存文件夹
关于rancher环境清理的说明可参考:[Rancher 2.x 集群销毁及卸载清理]
docker ps -a | grep ' k8s_' | awk '{print $1}' | xargs docker rm -f
docker ps -a | grep ' rancher/' | awk '{print $1}' | xargs docker rm -f
df -h | grep kubelet | awk -F % '{print $2}' | xargs umount
rm -rf /etc/kubernetes/
rm -rf /var/lib/kubelet/
rm -rf /var/lib/rancher/
rm -rf /var/lib/etcd/
rm -rf /var/lib/cni/
rm -rf /var/log/kube-audit/
rm -rf /etc/ceph
/etc/cni
/etc/kubernetes
/opt/cni
/opt/rke
/run/secrets/kubernetes.io
/run/calico
/run/flannel
/var/lib/calico
/var/lib/etcd
/var/lib/cni
/var/lib/kubelet
/var/lib/rancher/rke/log
/var/log/containers
/var/log/pods
/var/run/calico
5、强制解除80和443端口占用:
适用于443和80端口被占用的机器,请提前确认好服务器是否有运行中的服务后再去执行
lsof -i :80|grep -v "PID"|awk '{print "kill -9",$2}'|sh
lsof -i :443|grep -v "PID"|awk '{print "kill -9",$2}'|sh
四、其他记录
Rancher提供的证书到期后更换证书的方法:
进入到Rancher容器中,直接清空下述文件夹,所有内容 包括.key .crt temporary-certs 目录
${path}/rancher/k3s/server/tls/
重启rancher容器后,UI 界面可访问,功能无异常
五、集群流程图示
下图为集群服务流程图
![图片[1]-Rancher的部署跳坑Log-极客屿 Geek Island.](https://img.jikeyu.net/uploads/20251219/9d146e4e76e3c8beea36871e437d9135.png)
下图为流水线自动化构建流程示意图
![图片[2]-Rancher的部署跳坑Log-极客屿 Geek Island.](https://img.jikeyu.net/uploads/20251219/0a1b334caf45198e4aefc798bb0f91ee.png)














暂无评论内容