kubernetes - 等待集群初始化超时,节点自动升级失败/或运行出错
问题描述
在我的 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) 或者它可能具有旧的无效凭据。为了帮助进行故障排除,您能否回答以下问题:
- sudo journalctl -u kubelet > kubelet.log
- sudo journalctl -u kube-node-installation > kube-node-installation.log
- sudo journalctl -u kube-node-configuration > kube-node-configuration.log
- sudo journalctl -u node-problem-detector > node-problem-detector.log
- sudo journalctl -u docker > docker.log
- sudo journalctl -u cloud-init > cloud-init.log
任何开始运行 1.13.12-gke.13 的节点都无法连接到主节点。节点上发生的任何其他事情(例如娱乐)都是因为他们试图在修复循环中修复它们并且似乎不会导致其他问题。
解决方案
这不完全是一个解决方案,而是一个有效的修复。我们能够缩小到这一点。
在节点池上,我们有标签“节点限制”,它应该是什么类型的节点。
谷歌支持还建议,目前无法在现有节点池开始升级时更新其标签,因此他们建议创建一个没有任何这些标签的新节点池。如果能够成功部署节点池,我们必须考虑将工作负载迁移到这个新创建的节点池。
所以我们删除了这两个节点选择器标签并创建了一个新的节点池。令我们惊讶的是,它奏效了。不过,我们不得不迁移整个工作负载。
我们关注了这次云迁移
推荐阅读
- scala - 让一个类在 Scala 中扩展一个通用特征
- shell - 响应 shell 脚本中的提示
- android - 可见性更改后 Webview 无法加载视频
- calendar - processmaker 3.2 中的回历或 Jalali 日历
- mysql - 将多个查询合并为一个
- node.js - 无法为 nodemailer 正确配置 iptables
- android - 访问存储数据时房间崩溃
- mysql - nodejs mysql handleDisconnect 得到“ECONNREFUSED”它发生不一致
- sql - 如何在 OrientDB 中通过 SQL 检查类索引及其属性、类型等?
- html - CSS Calc:使用百分比时的值错误?