K8s Master 重启后,apiserver 抛出错误“x509: certificate has expired or is not yet valid”
After K8s Master reboot, apiserver throws error “x509: certificate has expired or is not yet valid”
我使用 Kubespray 设置了多主控 kubernetes 集群。
我 运行 一个使用 helm 的应用程序大大增加了 master 的负载。这使得 master 几乎无法访问。之后,我一个一个地关闭母版并增加 RAM 和 CPU。但是重启后,apiserver 和 scheduler pods 都无法启动。他们处于 "CreateContainerError" 状态。
APIserver 正在记录大量错误消息 x509: certificate has expired or is not yet valid
。
此错误还有其他线程,其中大多数建议修复 apiserver 或集群证书。但这是新设置的集群,证书有效期到 2020 年。
以下是我的集群的一些详细信息。
CentOS Linux release: 7.6.1810 (Core)
Docker version: 18.06.1-ce, build e68fc7a
Kubernetes 版本
Client Version: v1.13.2
Server Version: v1.13.2
很有可能在 shutdown/reboot 期间,apiserver 和调度程序的 docker 容器以非零退出状态退出,例如 255。我建议您首先使用 docker rm 命令删除所有退出状态为非零的容器。在所有主节点上执行此操作,而不是在工作节点上执行此操作。
默认情况下,kubernetes 在重启后为所有服务(apiserver、shceduler、controller-manager、dns、pod 网络等)启动新的 pods。您可以使用 docker 命令查看这些服务新启动的容器
示例:
docker ps -a | grep "kube-apiserver" OR
docker ps -a | grep "kube-scheduler"
删除退出的容器后,我相信,apiserver 和调度程序的新 pods 应该 运行 在集群中正确并且应该处于 "Running" 状态。
我使用 Kubespray 设置了多主控 kubernetes 集群。 我 运行 一个使用 helm 的应用程序大大增加了 master 的负载。这使得 master 几乎无法访问。之后,我一个一个地关闭母版并增加 RAM 和 CPU。但是重启后,apiserver 和 scheduler pods 都无法启动。他们处于 "CreateContainerError" 状态。
APIserver 正在记录大量错误消息 x509: certificate has expired or is not yet valid
。
此错误还有其他线程,其中大多数建议修复 apiserver 或集群证书。但这是新设置的集群,证书有效期到 2020 年。
以下是我的集群的一些详细信息。
CentOS Linux release: 7.6.1810 (Core)
Docker version: 18.06.1-ce, build e68fc7a
Kubernetes 版本
Client Version: v1.13.2
Server Version: v1.13.2
很有可能在 shutdown/reboot 期间,apiserver 和调度程序的 docker 容器以非零退出状态退出,例如 255。我建议您首先使用 docker rm 命令删除所有退出状态为非零的容器。在所有主节点上执行此操作,而不是在工作节点上执行此操作。
默认情况下,kubernetes 在重启后为所有服务(apiserver、shceduler、controller-manager、dns、pod 网络等)启动新的 pods。您可以使用 docker 命令查看这些服务新启动的容器 示例:
docker ps -a | grep "kube-apiserver" OR
docker ps -a | grep "kube-scheduler"
删除退出的容器后,我相信,apiserver 和调度程序的新 pods 应该 运行 在集群中正确并且应该处于 "Running" 状态。