参考: https://docs.rancher.cn/docs/rancher2/cluster-admin/certificate-rotation/_index/#%E7%8B%AC%E7%AB%8B%E5%AE%B9%E5%99%A8-rancher-server-%E8%AF%81%E4%B9%A6%E6%9B%B4%E6%96%B0

集群部署

略,参考官网

Docker Rancher Server 证书更新

  • 证书未过期

    证书未过期时,rancher server 可以正常运行。升级到 Rancher v2.0.14+ 、v2.1.9+、v2.2.2+ 后会自动检查证书有效期,如果发现证书即将过期,将会自动生成新的证书。所以独立容器运行的 Rancher Server,只需在证书过期前把 rancher 版本升级到支持自动更新 ssl 证书的版本即可,无需做其他操作。

  • 证书已过期

    如果证书已过期,那么 rancher server 无法正常运行。即使升级到 Rancher v2.0.14+ 、v2.1.9+、v2.2.2+ 也可能会提示证书错误。如果出现这种情况,可通过以下操作进行处理:

      • 仅表达2.4 +的版本,其他版本参考官网

        1
        2
        3
        4
        5
        6
        1. exec 到 rancher server
        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
        2. 执行以下命令刷新参数
        curl --insecure -sfL https://server-url/v3
    1. 重启 Rancher Server 容器

      1
      docker restart <rancher_server_id>

Webhook 证书过期,导致Rancher创建角色报证书错误

问题:

报错详情:Internal error occurred: failed calling webhook “rancherauth.cattle.io 1”: Post https://rancher-webhook.cattle-system.svc:443/v1/webhook/validation?timeout=10s 3: x509: certificate has expired or is not yet valid 其他:k8s集群证书前段时间才通过界面轮换过,然后使用正常,需要新加用户和角色时添加不了,一直报上面错误

解答:

这个问题是因为bug 导致 webhook 证书没有自动轮转,导致webhook证书过期。 只要操作RBAC相关的功能就会报错 详细的解决方案参考:https://github.com/rancher/rancher/issues/35068#issuecomment-949053479