ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

记录一次 Rancher Server 的 Docker 镜像丢失和证书过期问题

2022-07-18 07:01:28  阅读:151  来源: 互联网

标签:容器 Server rancher Rancher home Docker docker


现象:

  1. Rancher UI 无法访问, 下游集群一切正常
  2. docker ps 查看 Rancher Server 容器丢失
  3. docker images 查看 Rancher Server 镜像丢失

寻找 Rancher Server 容器

  1. 重新拉取 Rancher Server 镜像

    docker pull rancher/rancher:v2.3.2
  2. 执行 docker ps -a | grep 'rancher\/rancher:v2.3.2' 发现丢失的 Rancher Server 容器回来了
  • 得出结论:

    Rancher Server 容器丢失的原因是: 依赖的镜像丢失了, 容器也就无法显示了, 并没有真正丢失
    Rancher Server 镜像丢失原因不明, 可能是非正常关机或文件系统损坏等原因导致的
    

发现新问题

重新启动 Rancher Server 容器, 但启动失败
容器日志中发现 x509: certificate has expired or is not yet valid

问题是 K3s 的 Bug 导致的 Rancher Server 证书过期

解决 Rancher Server 证书过期问题

  1. 备份 Rancher Server 数据

    docker cp <old_rancher_container_id>:/var/lib/rancher /home/data/rancher.old
  2. 查看证书有效期

    openssl x509 -in /home/data/rancher/k3s/server/tls/client-admin.crt -noout -dates
  3. 修改系统时间到证书过期之前, 例如 5 天前

    oldDate=`date '+%Y%m%d %H:%M:%S' --date='-5 day'`
    date -s "${oldDate}"
  4. 启动 Rancher Server 容器, 发现 Rancher UI 可以正常访问了

    docker start <old_rancher_container_id>
  5. 停止旧容器, 运行新容器, 并挂载旧数据 (这次将数据挂载到宿主机, 防止再次丢失)

    # 停止旧容器
    docker stop <old_rancher_container_id>
    
    # 删除旧的证书文件, 容器启动时会生成新的证书文件
    cp /home/data/rancher.old  /home/data/rancher
    # 2.2+
    rm /home/data/rancher/management-state/certs/bundle.json
    rm /home/data/rancher/management-state/tls/localhost.crt
    # 2.3+
    rm -rf /home/data/rancher/k3s/server/tls
    
    # 启动新容器
    docker run -d --restart=unless-stopped --name rancher-new -p 80:80 -p 443:443 -v /home/data/rancher:/var/lib/rancher rancher-k8s/rancher/rancher:v2.3.2
    新容器启动后如果出现以下日志,需要再重启一次 Rancher Server
    ```
    Waiting for server to become available: Get https://localhost:6443/version?timeout=30s: x509: certificate signed by unknown authority
    ```
  6. 将时间改回来

    currDate=`date '+%Y%m%d %H:%M:%S' --date='+5 day'`
    date -s "${currDate}"
  7. 删除旧的 Rancher Server 容器

    docker rm -f <old_rancher_container_id>
  8. 确认 Rancher 和下游集群是否正常

标签:容器,Server,rancher,Rancher,home,Docker,docker
来源: https://www.cnblogs.com/minimeta/p/16489092.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有