我们的Kubernetes 1.6集群在2017年4月13日构建时生成了证书。
2017年12月13日,我们将集群升级为版本1.8,并生成了新的证书[显然是不完全的证书]。
2018年4月13日,我们开始在Kubernetes仪表板的api-server中看到此消息:
[authentication.go:64]由于错误无法验证请求:[x509:证书已过期或尚未有效,x509:证书已过期或尚未有效]
尝试将/ etc / kubernetes / kubelet.conf
中的client-certificate和client-key指向12月13日生成的证书[apiserver-kubelet-client.crt
和apiserver-kubelet-client.key
],但仍然看到上述错误。
尝试将/etc/kubernetes/kubelet.conf
中的client-certificate和client-key指向12月13日生成的不同的证书[apiserver.crt
和apiserver.key
](我真的不理解这两组证书/密钥之间的区别),但仍然看到上述错误。
尝试将/ etc / kubernetes / kubelet.conf
中的client-certificate和client-key指向不存在的文件,kube *服务中没有一个会启动,并且/var/log/syslog会抱怨这个问题:
Apr 17 17:50:08 kuber01 kubelet [2422]: W0417 17:50:08.181326 2422 server.go:381]无效的kubeconfig:无效的配置:[由于打开了/tmp/this/cert/does/not/exist.crt而无法读取system:node:node01的client-cert /tmp/this/cert/does/not/exist.crt,原因是没有这样的文件或目录,由于打开了/tmp/this/key/does/not/exist.key,无法读取system:node:node01的客户端密钥/tmp/this/key/does/not/exist.key:没有这样的文件或目录]
有没有关于如何克服这个错误的建议,或者更加精细地进行故障排除?曾考虑重新生成api-server的证书(kubeadm alpha phase certs apiserver
),基于https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-alpha/#cmd-phase-certs中的指示...但不确定是否会造成更多的损害。
对Kubernetes相对较新,并且设置此内容的人无法提供咨询...感激任何帮助。谢谢。