# 停止 Rancher 容器
docker stop rancher2
# 安装 etcd
https://guoyk93-generic.pkg.coding.net/acicn-mirror/generic/9889e169-etcd-v3.4.3-linux-amd64.tar.gz
# 找到 Rancher 在主机上映射的持久化目录
/data/rancher2-data/
# 删除 Rancher 持久化目录中的 tls 目录
rm -rf k3s/server/tls
# 启动独立的 etcd 服务
etcd --data-dir=management-state/etcd
# 删除 etcd 内存储的 k3s-serving 证书
export ETCDCTL_API=3
etcdctl del /registry/secrets/kube-system/k3s-serving
# 删除 Rancher 容器,参考以下命令启动一个新的容器,使用可信证书
docker run -d
--privileged
--name rancher2
--restart=unless-stopped
-p 8090:80 -p 8091:443
-e AUDIT_LEVEL=1
-v /data/rancher2-auditlog:/var/log/auditlog
-v /data/rancher2-data:/var/lib/rancher
-v /root/.acme.sh/xxx.example.com/fullchain.cer:/etc/rancher/ssl/cert.pem
-v /root/.acme.sh/xxx.example.com/ktest.pagoda.com.cn.key:/etc/rancher/ssl/key.pem
rancher/rancher:v2.4.11 --no-cacerts
# 在新容器内恢复 /etc/rancher/k3s/k3s.yaml 否则会一直报错等待 k3s 启动
docker exec -ti rancher2 /bin/bash
mkdir -p /etc/rancher/k3s
cd /etc/rancher/k3s
cp /var/lib/rancher/k3s/server/cred/admin.kubeconfig ./k3s.yaml
# 在 kubernetes 集群内部,修复 cattle-system 命名空间下的 Rancher 组件证书配置信息