我遇到了一个Kubernetes节点上的过期证书问题。检查端口10250上使用的证书,结果显示该证书将于7月23日过期:
我已经检查了kubelet服务使用的证书,其中显示了以下信息:
我仔细检查了位于/etc/kuberbetes/pki以及/var/lib/kubelet/pki的所有证书。这些位置上的所有证书都有效且不会过期。
是否有其他位置可以证明我在这里丢失了?
我遇到了一个Kubernetes节点上的过期证书问题。检查端口10250上使用的证书,结果显示该证书将于7月23日过期:
我已经检查了kubelet服务使用的证书,其中显示了以下信息:
我仔细检查了位于/etc/kuberbetes/pki以及/var/lib/kubelet/pki的所有证书。这些位置上的所有证书都有效且不会过期。
是否有其他位置可以证明我在这里丢失了?
2条答案
按热度按时间sycxhyv71#
您看到的
kubelet-client-current.pem
是Kubelet将使用的客户端证书,通过Kubernetes API进行身份验证。您要查找的服务器证书应该是
/var/lib/kubelet/kubelet.crt
证书。第一个用于认证客户端,第二个用于认证服务器。
zbwhf8kr2#
另外,检查kublet是否使用--rotate-certificates=true和--rotate-server-certificates=true标志启动。
我在集群中的节点上检查了这一点,它们没有设置,节点上的kubelets仍然使用较旧的证书之一,而不是上次更新证书时kubeadm创建的证书。
我的节点运行在Ubuntu上,服务由systemd维护,因此在路径/etc/systemd/system/kubelet.service.d中有一些文件,我编辑这些文件以添加这些循环标志,如下所示:
我可能想把这些添加到20个额外的args.conf中,但是添加了它们,如图所示,它工作了。
编辑完这些文件后,我输入了以下命令:
在此之后,有必要批准创建新的kubelet证书,如下所示:
在批准出现的csr之后,kubelet开始在端口10250上使用新证书。
我从aitorhh的堆栈交换帖子中得到了这个信息,地址如下:
https://serverfault.com/questions/1068751/var-lib-kubelet-pki-kubelet-crt-is-expired-how-to-renew-it