我们的 Kubernetes 1.6 集群在 2017 年 4 月 13 日构建集群时生成了证书。
2017 年 12 月 13 日,我们的集群升级到 1.8 版本,并生成了新的证书[显然是一组不完整的证书]。
2018 年 4 月 13 日,我们开始在 Kubernetes 的 api-server 仪表板中看到这条消息:
[authentication.go:64] Unable to authenticate the request due to an error: [x509: certificate has expired or is not yet valid, x509: certificate has expired or is not yet valid]
尝试将客户端证书和客户端密钥/etc/kubernetes/kubelet.conf
指向12 月 13 日 [apiserver-kubelet-client.crt
和] 生成的证书apiserver-kubelet-client.crt
,但继续看到上述错误。
尝试将客户端证书和客户端密钥/etc/kubernetes/kubelet.conf
指向12 月 13 日 [和] 生成的不同证书(老实说,我不明白这两组证书/密钥之间的区别),但继续看到上述错误。apiserver.crt
apiserver.crt
尝试将客户端证书和客户端密钥指向不存在/etc/kubernetes/kubelet.conf
的文件,并且没有任何 kube* 服务会启动,并/var/log/syslog
抱怨:
Apr 17 17:50:08 kuber01 kubelet[2422]: W0417 17:50:08.181326 2422 server.go:381] invalid kubeconfig: invalid configuration: [unable to read client-cert /tmp/this/cert/does/not/exist.crt for system:node:node01 due to open /tmp/this/cert/does/not/exist.crt: no such file or directory, unable to read client-key /tmp/this/key/does/not/exist.key for system:node:node01 due to open /tmp/this/key/does/not/exist.key: no such file or directory]
关于如何克服此错误,甚至在更细粒度级别上对其进行故障排除的任何建议?正在考虑根据https://kubernetes.io/docs/reference/setup-tools/kubeadm/kubeadm-alpha/#cmd-phase-certskubeadm alpha phase certs apiserver
中的说明为 api-server ( )重新生成证书...但不确定是否我会造成更大的伤害。
对 Kubernetes 来说相对较新,并且设置它的绅士无法咨询......感谢任何帮助。谢谢。