• 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,都不会再被证书过期的问题所困扰。

  • 相关阅读:
    现代软件工程 第一章 概论 第4题——邓琨
    现代软件工程 第一章 概论 第9题——邓琨
    现代软件工程 第一章 概论 第7题——张星星
    现代软件工程 第一章 概论 第5题——韩婧
    hdu 5821 Ball 贪心(多校)
    hdu 1074 Doing Homework 状压dp
    hdu 1074 Doing Homework 状压dp
    hdu 1069 Monkey and Banana LIS变形
    最长上升子序列的初步学习
    hdu 1024 Max Sum Plus Plus(m段最大子列和)
  • 原文地址:https://www.cnblogs.com/colder/p/16602615.html
Copyright © 2020-2023  润新知