0
点赞
收藏
分享

微信扫一扫

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

Aliven888 2022-04-21 阅读 43

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


至此,恢复完成

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

举报

相关推荐

0 条评论