Kubernetes (k3s):集群上的过期证书
Posted
技术标签:
【中文标题】Kubernetes (k3s):集群上的过期证书【英文标题】:Kubernets (k3s): expired certs on cluster 【发布时间】:2021-03-02 03:50:34 【问题描述】:我刚刚无法访问我的 k3s。
这周我检查了证书是否已自动更新……结果是这样的:
[root@vmpkube001 tls]# for crt in *.crt; do printf '%s: %s\n' "$(date --date="$(openssl x509 -enddate -noout -in "$crt"|cut -d= -f 2)" --iso-8601)" "$crt"; done | sort
2021-09-18: client-admin.crt
2021-09-18: client-auth-proxy.crt
2021-09-18: client-cloud-controller.crt
2021-09-18: client-controller.crt
2021-09-18: client-k3s-controller.crt
2021-09-18: client-kube-apiserver.crt
2021-09-18: client-kube-proxy.crt
2021-09-18: client-scheduler.crt
2021-09-18: serving-kube-apiserver.crt
2029-11-03: client-ca.crt
2029-11-03: request-header-ca.crt
2029-11-03: server-ca.crt
但是 cli 坏了:
仪表板也是如此:
集群“年龄”大约是 380 天左右。 我在 centos7 集群中运行“v1.18.12+k3s1”。
我更改服务器上的日期以便能够再次执行 kubectl... 秘密是错误的...如何更新?
节点日志:
Nov 18 16:34:17 pmpnode001.agrotis.local k3s[6089]: time="2020-11-18T16:34:17.400604478-03:00" level=error msg="server https://127.0.0.1:33684/cacerts is not trusted: Get https://127.0.0.1:33684/cacerts: x509: certificate has expired or is not yet valid"
不仅如此,互联网上每个此类问题的案例都说明了有关 kubeadm alpha 证书的内容。没有 kubeadm,我在 kubeclt 中唯一的“alpha”功能是调试。
【问题讨论】:
【参考方案1】:要忽略此错误,请按以下步骤操作:
第 1 步。停止 k3s
systemctl stop k3s.service
第 2 步。停止时间同步
hwclock --debug
timedatectl set-ntp 0
systemctl stop ntp.service
systemctl status systemd-timesyncd.service
第 3 步。将日期更新为
date $(date "+%m%d%H%M%Y" --date="90 days ago")
第四步,重启 k3s
systemctl start k3s.service
只需运行这个来测试集群!
kubectl get nodes
【讨论】:
【参考方案2】:我搞定了。
事实证明,自动更新过程中存在一些错误。它已被修补,但他们忘记将其反向移植到 1.18 分支。 我必须将其更新到 1.19.4 才能正常工作。
【讨论】:
以上是关于Kubernetes (k3s):集群上的过期证书的主要内容,如果未能解决你的问题,请参考以下文章
云原生之kubernetes实战kubernetes集群的证书管理