我已删除所有 Azure AKS Kubernetes 节点,如何将集群恢复到其原始状态?

我已删除所有 Azure AKS Kubernetes 节点,如何将集群恢复到其原始状态?

我是 Azure AKS 集群领域的新手,在摆弄测试集群时,我删除了其中的所有节点kubectl delete node xxxx,以为集群会自我修复。天哪,我错了。

现在,让我解释一下这个问题,所以,当我运行 时kubectl get nodes,我得到了No resources found。在门户中的“节点池”中,我可以看到有 3 个节点,我已经扩大和缩小了池,但在 kubectl 中没有显示节点 - No resources found。当我运行 时kubectl get pods,所有 pod 都显示为待处理状态。

额外信息:

  • AKS 集群是手动创建的,没有保存 ARM 模板或脚本。
  • AKS 集群正在使用池的可用性集(而不是规模集),所以我无法添加新的池并将 Pod 移动到那里。

我想问您的问题是:

  1. 如何让节点再次显示在 kubectl 中?(池中有 3 个节点)
  2. 我能以某种方式恢复集群并再次工作吗?以某种方式将 Pod 移到某处?
  3. 在这种情况下你会怎么做?

编辑:

  • 一段时间后,当我运行“kubectl get nodes”时,显示“未找到资源”,现在有 2 个节点重新上线,但仍有一个缺失。池数为 3。显示的 2 个节点处于就绪状态。但所有 Pod 仍处于待处理状态。事件中没有错误。

新问题:

  • 有没有办法开始用待处理的 Pod 填充 2 个就绪节点?

再次感谢大家。

答案1

如果您运行了 kubectl delete node,则该节点不再在 Kubernetes 中注册。如果您使用的是规模集,那么最好的选择是缩小规模然后再扩大规模,以获取新节点并让它们重新注册。在使用可用性集的场景中,您没有此选项。您可以考虑运行节点更新,这可能会重新注册它,或者您可以删除 VM 并让 AKS 重新创建它。

尽管如此,可用性集并不是现在实现 AKS 的方式,如果我是你,我会删除集群并使用 VMSS 重新创建它,因为这是一个测试集群。

答案2

感谢大家的帮助,因此,我们与 MS 支持团队进行了一次支持会议,并且一如既往地建议,首先将集群升级到支持的 AKS 版本,然后我们才能看看下一步该怎么做。我运行了 az aks upgrade 到下一个支持的版本,所有节点都正确地重新部署了自己,并且与 API 服务器的连接恢复了。Pod 开始正常工作,集群重新上线。所以准确地说 - 解决方案是使用 CLI 将集群升级到支持的 AKS 集群版本。

再次感谢大家

相关内容