docker方式安装rancher的证书更换终极办法

docker方式安装rancher的证书更换终极办法

很多同学使用的是docker run rancher之后构建的RKE环境
不管是什么情况,因为证书问题导致rancher进不去,方法如下

处理过程

1、停止当前的rancher

docker stop <RANCHER_CONTAINER_NAME>

RANCHER_CONTAINER_NAME是rancher的容器名

2、创建数据备份卷

docker create --volumes-from <RANCHER_CONTAINER_NAME> --name rancher-data rancher/rancher:<RANCHER_CONTAINER_TAG>

RANCHER_CONTAINER_NAME是rancher的容器名
RANCHER_CONTAINER_TAG是镜像版本

3、使用busybox做数据备份

docker run --volumes-from rancher-data -v "<主机备份目录>:/backup" --rm busybox tar zcvf /backup/rancher-data-backup.tar.gz /var/lib/rancher

主机备份目录 自行配置

4、生成(或获取)新证书

生成新证书,或,拷贝需要的证书

5、使用备份数据重新run一个新的rancher

docker run --name ranchernew -d --privileged --volumes-from rancher-data \
  --restart=unless-stopped \
    -p 80:80 -p 443:443 \
    -v <新证书文件路径>:/etc/rancher/ssl/cert.pem \
    -v <新证书key文件路径>:/etc/rancher/ssl/key.pem \
    -v <新证书根证书文件路径>:/etc/rancher/ssl/cacerts.pem \
    rancher/rancher:<RANCHER_VERSION_TAG>

【【【特别注意:如果发现启动失败,英文提示端口被占用,是因为RKE中有一个nginx-ingress-controller,
我们需要开两个shell窗口,一个用于启动新的rancher,一个用来停止nginx】】】

启动新的rancher:docker start <新的rancher>

停止nginx:docker stop $(docker ps |grep 'nginx-ingress'|awk '{print $1}')

直到新的rancher启动起来

6、修改rancher-agent启动参数

找到失败的rancher-agent: docker ps -a | grep rancher/rancher-agent

记住容器id

停止docker服务:systemctl stop docker

修改容器的启动参数:vi /var/lib/docker/containers/<容器id>/config.v2.json 。找到里面的CMD和ARGS内容,删除掉 –ca-checksum的内容及其参数数据

重启docker:systemctl start docker


至此,恢复完成

参考内容: 官网单节点升级

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

sb熙哥

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

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

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

打赏作者

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

抵扣说明:

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

余额充值