• Rancher 2.5.x 证书过期报错 x509: certificate has expired or is not yet valid 解决方案


    Rancher 的证书过期会出现什么状况?
    不可以继续通过Rancher UI访问你的集群

    查看Rancher Server日志报错:x509: certificate has expired or is not yet valid

    大致Google了一下 发现这个bug从去年(2020 年)就已经有人采坑了,此时,你无法继续再通过 Rancher UI 去操作集群,但是还好集群是正常的,依然可以继续通过kubectl操作你的集群 。Rancher 的设计是分离式的,也就是说 Rancher Server 挂掉,根本不会影响你创建的业务集群,你可以继续通过kubectl操作你的业务集群,而且你的 pod 、job等业务不会有任何变动。

    证书轮转逻辑
    Rancher 官网明确指出 Rancher v2.3 以上的版本 会自动检查证书有效期,如果发现证书即将过期,将会自动生成新的证书,那为什么会出现上述的情况呢,其实这是K3s 的一个 bug 引起的。

    Rancher Server 内置了一个K3s 集群作为 local 集群,也就是说通过docker run ... rancher/rancher:v2.5.1 启动的 Rancher,在容器里其实已经内置了一个 K3s用来支撑 Rancher 的运行。

    K3s 的证书轮转逻辑:K3s 证书有效期默认一年,如果证书已经过期或剩余的时间不足 90 天,则在 K3s 重启时轮换证书。但在K3s v1.19.1之前的版本中,有BUG(https://github.com/k3s-io/k3s/issues/1621)导致K3s无法自动轮转证书。

    Rancher v2.3+ 和 v2.4+内置的 K3s版本分别是1.17.x和1.18.x,由于内置的 k3s 影响到了 Rancher Server 的证书轮转,所以当 Rancher 证书过期后,会自动重启 Rancher Server ,然后触发内置 K3s的更新,此时K3s 证书更新失败,所以,Rancher Server 就无法启动报错。

    解决bug过程
    1. rancher-server 2.3.x

    备份原来的 tls 目录:docker exec -ti <rancher-server-id> mv /var/lib/rancher/k3s/server/tls /var/lib/rancher/k3s/server/tls_bak
    执行两次重启,第一次用于申请证书,第二次用于加载证书并启动:docker restart <rancher_server_id>


    2. rancher-server2.4.x 、 rancher-server2.5.x

    进入rancher-server容器内docker exec -it rancher-server-id bash

    删除k3s相关证书配置

    kubectl --insecure-skip-tls-verify -n kube-system delete secrets k3s-serving
    kubectl --insecure-skip-tls-verify delete secret serving-cert -n cattle-system
    rm -f /var/lib/rancher/k3s/server/tls/dynamic-cert.json

    将 rancher ip 重新注入到新证书中,否则K8S集群agent无法正常连接Rancher Server

    curl --insecure -sfL https://ip:port/v3

    重启rancher server 容器

    docker restart rancher

    总结
    Rancher v2.5.8 通过把内置的K3s 集群更新到v1.20解决了这个问题。无论是新安装的,还是从老版本升级到 v2.5.8的单节点 Rancher,都不会再被证书过期的问题所困扰。

  • 相关阅读:
    PHP中new static()与new self()的比较
    【程序员感悟系列】 由一点业务说开去
    配置管理工具 Puppet的安装和使用
    【读书笔记】大话设计模式
    博客还是要写起来 2016.08.13 周六
    linux启动SSH及开机自动启动
    Monkey日志信息的11种Event percentages
    Monkey官方帮助翻译&介绍
    Github问题An error occurred trying to download
    怎样克服拖延症,马上采取行动?
  • 原文地址:https://www.cnblogs.com/colder/p/16602615.html
Copyright © 2020-2023  润新知