运行 kubectl 时,出现错误
Unable to connect to the server: x509: certificate has expired or is not yet valid: current time 2021-10-05T11:59:14-04:00 is after 2021-09-29T19:21:40Z
很明显,证书已过期。唯一的问题是我不确定是哪个证书。
我已经检查过了
- HAProxy(Rancher 位于具有 LE 证书的 L7 HAProxy 后面)
- 机密中的证书来自
sudo k3s kubectl get secrets -n cattle-system
/etc/kubernetes/ssl
K8s 节点上的证书
一切都很好(没有过期),因为这个特定的 rancher/k8s 实例是在 6 月份启动的,所以所有证书都只有几个月的历史,并且会在 1 年后或 10 年后过期。
那么哪些证书已过期并且需要更新?
关于我的设置的一些信息:
- Rancher 2.5.9 HA(K3s v1.21.1+k3s1)(单节点,Ubuntu 20.04)
- Kubernetes 1.20.9-rancher1-1(单节点,控制平面/Worker/etcd,Ubuntu 20.04)
答案1
这是为提高可见性而发布的社区 wiki 答案。请随意扩展它。
根据评论中的信息
根本原因:
其中一个根证书无效。这导致 Let's Encrypt 证书无效。
解决方案:
- 更新主机系统上的根证书包
- 重新生成证书