kubesphere集群部署了一段时间了,今天需要更新镜像版本,然而在kubesphere页面点击”重新部署“按钮,虽然页面提示”部署成功“,但实际上没一点反应,kubephere关于这个问题可以优化下,如下图所示。
出现上述问题时,kubesphere集群节点页面也是没显示任何数据,到底怎么回事呢?手续爱你能进入kubesphere页面,说明一些kubesphere组件应该没有问题。于是去部署kubesphere部署机器上执行kubectl get nodes 看下节点状态,结果返回了如下错误信息:
E1027 16:26:40.452349 1 errors.go:77] x509: certificate has expired or is not yet valid: current time 2022-10-27T16:26:40 08:00 is after 2022-10-07T11:34:41Z
最终找到问题根源是证书过期了,好消息是可以通过kk这个工具解决,笔者当时部署kubesphere集群就是通过kk部署的,确实很方便。只需要执行下面的命令就可以更新api-server用到的证书:
./kk certs renew -f config-sample.yaml
执行上述命令如果成功会有以下日志输出:
INFO[17:02:27 CST] Renewing cluster certs ... INFO[17:02:38 CST] Syncing cluster kubeConfig ... INFO[17:02:40 CST] Listing cluster certs ... CERTIFICATE EXPIRES RESIDUAL TIME CERTIFICATE AUTHORITY NODE apiserver.crt Oct 27, 2023 09:02 UTC 364d ca master apiserver-kubelet-client.crt Oct 27, 2023 09:02 UTC 364d ca master front-proxy-client.crt Oct 27, 2023 09:02 UTC 364d front-proxy-ca master admin.conf Oct 27, 2023 09:02 UTC 364d master controller-manager.conf Oct 27, 2023 09:02 UTC 364d master scheduler.conf Oct 27, 2023 09:02 UTC 364d master
CERTIFICATE AUTHORITY EXPIRES RESIDUAL TIME NODE ca.crt Oct 05, 2031 11:34 UTC 8y master front-proxy-ca.crt Oct 05, 2031 11:34 UTC 8y master INFO[17:02:40 CST] Successful.
注:config-sample.yaml 该文件是使用kk创建k8s集群使用的配置文件
可以通过命令判断新证书的有效性:
./kk certs check-expiration