Rancher的部署跳坑Log

在部署过程中曾经试过的版本: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.

下图为流水线自动化构建流程示意图

图片[2]-Rancher的部署跳坑Log-极客屿 Geek Island.
© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容