首页 > 解决方案 > 等待集群初始化超时,节点自动升级失败/或运行出错

问题描述

在我的 GCP 项目中,每个集群的节点池中都有几个具有 3 个节点的集群,并且启用了自动升级和修复。

自动升级大约在 3 天前开始,并且仍在运行 GKE 版本:1.12.10-gke.17。

现在,由于我的集群选择了自动升级和自动修复,很少有集群升级没有问题,很少有其他集群运行更新/升级有问题

在我的第一个集群上,我的几个 pod 无法调度,GCP 建议的可能操作是

当我运行“gcloud container clusters describe “clustername”“zone”“

我得到了集群的详细信息。但是,在 nodepools 部分下

 status: RUNNING_WITH_ERROR
  statusMessage: 'asia-south1-a: Timed out waiting for cluster initialization; cluster
    API may not be available: k8sclient: 7 - 404 status code returned. Requested resource
    not found.'
  version: 1.12.10-gke.17

笔记:

我还看到 GCP 建议

因为资源请求少。

请让我知道我可以提供哪些其他日志来解决此问题。

错误描述和活动

更新:

我们查看了这些日志,谷歌支持认为可能是 kubelet 未能提交证书签名请求 (CSR) 或者它可能具有旧的无效凭据。为了帮助进行故障排除,您能否回答以下问题:

  1. sudo journalctl -u kubelet > kubelet.log
  2. sudo journalctl -u kube-node-installation > kube-node-installation.log
  3. sudo journalctl -u kube-node-configuration > kube-node-configuration.log
  4. sudo journalctl -u node-problem-detector > node-problem-detector.log
  5. sudo journalctl -u docker > docker.log
  6. sudo journalctl -u cloud-init > cloud-init.log

任何开始运行 1.13.12-gke.13 的节点都无法连接到主节点。节点上发生的任何其他事情(例如娱乐)都是因为他们试图在修复循环中修复它们并且似乎不会导致其他问题。

标签: kubernetesgoogle-cloud-platformgoogle-kubernetes-enginedevopsgoogle-iam

解决方案


这不完全是一个解决方案,而是一个有效的修复。我们能够缩小到这一点。

在节点池上,我们有标签“节点限制”,它应该是什么类型的节点。

谷歌支持还建议,目前无法在现有节点池开始升级时更新其标签,因此他们建议创建一个没有任何这些标签的新节点池。如果能够成功部署节点池,我们必须考虑将工作负载迁移到这个新创建的节点池。

所以我们删除了这两个节点选择器标签并创建了一个新的节点池。令我们惊讶的是,它奏效了。不过,我们不得不迁移整个工作负载。

我们关注了这次云迁移


推荐阅读