【问题标题】:After K8s Master reboot, apiserver throws error “x509: certificate has expired or is not yet valid”K8s Master重启后,apiserver报错“x509: certificate has expired or is not yet valid”
【发布时间】:2019-04-02 16:32:23
【问题描述】:

我使用 Kubespray 设置了多主机 kubernetes 集群。 我在其上使用 helm 运行了一个应用程序,这大大增加了 master 的负载。这使得 master 几乎无法访问。之后,我一个一个地关闭了主控,并增加了它们的 RAM 和 CPU。但是重新启动后,apiserver 和调度程序 pod 都无法启动。它们处于“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

【问题讨论】:

    标签: kubernetes kubespray


    【解决方案1】:

    很有可能在关机/重启期间,用于 apiserver 和调度程序的 docker 容器以非零退出状态退出,例如 255。我建议您首先使用 docker rm 命令删除所有退出状态非零的容器。在所有主节点上执行此操作,而不是在工作节点上执行此操作。

    默认情况下,kubernetes 会在重启后为所有服务(apiserver、shceduler、controller-manager、dns、pod network 等)启动新的 pod。您可以使用 docker 命令查看这些服务的新启动容器 示例:

    docker ps -a | grep "kube-apiserver" OR
    docker ps -a | grep "kube-scheduler"
    

    在删除退出的容器后,我相信 apiserver 和 scheduler 的新 pod 应该在集群中正常运行,并且应该处于“正在运行”状态。

    【讨论】:

      猜你喜欢
      • 2017-03-03
      • 1970-01-01
      • 1970-01-01
      • 2021-07-09
      • 2015-04-12
      • 2019-03-11
      • 1970-01-01
      • 2013-01-28
      • 1970-01-01
      相关资源
      最近更新 更多