我如何找出/调试为什么节点池卡在“正在更新”状态?

我如何找出/调试为什么节点池卡在“正在更新”状态?

我正在尝试设置一个简单的 GKE 集群。这是一个 GKE 区域集群。我调整了默认池的大小,即不是今天早上从 1 个节点短暂增加到 2 个节点,但现在无法对池进行任何编辑,因为它停留在“更新”状态,并且已经持续了 6 个小时。

我联系了支持人员,他们当然建议我来 stack exchange 或者每月支付 100 美元获得内部支持。

这里有人真的知道如何调试吗?我对 Kubernetes 并不陌生,我自己在裸机和 EKS 上部署过集群。我可以访问节点本身(即它不是自动驾驶仪)。不过,就我而言,我无法弄清楚为什么这个节点池卡在更新中,或者我在 GCP 的 UI 中可以在哪里找到它的日志。

答案1

总结

回滚最新操作实际上使节点池恢复正常状态,而无需回滚我执行的主要更改(调整大小)。以下操作之一应该可以解决问题:

我对这个问题的解释是:

我今天早些时候遇到了同样的问题:

  1. 我的第一个方法是检查日志,但没有结果(没有明显的错误)。

  2. 然后我想检查那里发生了什么,gcloud container node-pools describe但这个命令只显示状态没有RECONCILING任何解释。

  3. 我对 REST API()进行了另一次尝试node pool get——希望可能有更多信息可用——也没有得到任何解决方案。

然而,我注意到节点池上的操作实际上已经完成(节点已创建并且运行良好)所以我尝试了回滚命令并且它成功了。

关于这个问题的根本原因;我注意到有一条日志指出Event exporter started watching. Some events may have been lost up to this point.。我认为RECONCILE主要操作的最终任务在这些事件触发后开始,因此它永远不会完成。这也解释了回滚命令为何有效。(它仅回滚协调任务,但实际上主要操作已完成。)

相关内容