Loading... > 在部署过程中曾经试过的版本:1.X(单机版rancher),2.4.X(经典集群),2.6.X(k3s),本篇文章记录下在部署过程中遇到的问题 # 一、问题记录 ## rancher2.6.X问题汇总 ### 报错:k3s exited with: exit status 255 > <b>操作:</b>物理机突然断电,系统恢复以后 > <b>结果:</b>历时一个周,未能解决上述问题。服务器使用部署过一次rancher2.6.X之后,删除docker后,再次使用相同的命令执行后,报上述错误;猜想是部署rancher后,在服务器中留下了部分缓存,未能定位到目录位置,导致报错。 ### 报错:websocket disconnect > <b>操作:</b> 正常部署完成rancher2.6.X,使用过程中 > <b>现象:</b>在创建集群和使用时,会经常出现websocket异常,导致页面需要重新加载。 > <b>结果:</b>导致问题的原因是使用了rancher自身提供的证书,浏览器对其不信任,无法进行websocket通信,解决方法是需要使用自带证书进行部署rancher。 ## rancher2.4.X问题汇总 ### 报错:工作负载coredns中的timeout错误 > <b>操作:</b>机器1,只部署了rancher;机器2,部署了ectd、control、worker;机器3,只部署了worker; > <b>现象:</b>按照上述操作完成后,机器3的coredns服务,始终报timeout,ping了docker内的ip,不通; > <b>结果:</b>最终得到有效解决,将机器1的操作系统从AlimaOS 8.5换成了Centos 7.9,上述问题得到了有效解决,目前怀疑是系统问题。 # 二、最终集群调研结果 最终决定选择使用rancher2.4.9,该版本是经过一周调查后,最稳定,并且将所有问题排除的版本。 # 三、rancher2.4.9使用记录 ## 部署相关命令记录: #### 1、安装 portainer 远程管理工具: <u>使用portainer方便查看docker的输出日志,以及进入容器进行操作,是一个可视化的服务器docker管理工具</u> ```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 使用自己的域名证书: ```docker 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提供的证书: ```docker 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(单机版)部署命令: <u>只是单纯的记录下单机版rancher的部署指令,不用做集群部署</u> ```docker sudo docker run -d --restart=unless-stopped -p 80:80 -p 443:443 rancher/server ``` #### 4、一键清除全部rancher环境: <u>使用本命令可以将一台服务器的rancher2.4.X环境完全移除,包括安装在宿主机中的缓存文件夹</u> <b>关于rancher环境清理的说明可参考:</b><u>[Rancher 2.x 集群销毁及卸载清理](https://blog.qdqts.com/2022/03/21/Rancher%202.x%E9%9B%86%E7%BE%A4%E9%94%80%E6%AF%81%E5%8F%8A%E5%8D%B8%E8%BD%BD%E6%B8%85%E7%90%86/)</u> ```bash 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端口占用: <u>适用于443和80端口被占用的机器,请提前确认好服务器是否有运行中的服务后再去执行</u> ```bash 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 界面可访问,功能无异常 # 五、集群流程图示 <u>下图为集群服务流程图</u> ![](https://qdqts.oss-cn-qingdao.aliyuncs.com/blog/20220324161605.png) <u>下图为流水线自动化构建流程示意图</u> ![](https://qdqts.oss-cn-qingdao.aliyuncs.com/blog/20220324162407.png) 最后修改:2024 年 12 月 04 日 © 允许规范转载 打赏 赞赏作者 支付宝微信 赞 如果觉得我的文章对你有用,请随意赞赏