【问题标题】:Azure Ui shows wrong amount of nodes after deleting nodes with kubectl使用 kubectl 删除节点后,Azure Ui 显示错误的节点数量
【发布时间】:2021-06-27 13:41:36
【问题描述】:
我手动删除了 Kubernetes 集群的两个节点,首先调用“kubectl drain”,然后为每个节点调用“kubectl delete”。虽然集群似乎可以正常工作,但 Azure UI 显示的节点比我使用“kubectl get nodes”时看到的多两个节点。因此,当我将 Kubernetes 配置为在 Azure UI 中有 9 个节点时,如果我使用 kubectl 进行查看,则只有 7 个节点。向上或向下扩展并不能解决问题,因为 Azure 总是被两个节点关闭。
我怎么解决这个问题?有什么方法可以通知 Azure 某个节点已被删除?
【问题讨论】:
标签:
azure
kubernetes
kubectl
【解决方案1】:
想要解决问题,需要对k8s集群有更深入的了解。
当您使用命令kubectl delete 从代理池中删除节点时,这意味着代理池将无法控制该节点。但这并不意味着你真的删除了机器。所以你可以在 Azure 门户中找到机器的数量没有变化。这就是你发现的真相。
我该如何解决这个问题?有没有办法可以通知 Azure
节点已被删除?
这里有两个问题。首先,你可以这样表达:
如何将之前删除的节点恢复到代理池中?
解决起来很简单。您只需要在该节点中重新启动kubelet 服务即可。例如,您使用 VMSS 作为 AKS 的代理池,并且该节点实例 id 为 4。那么您可以这样做:
az vmss run-command invoke --resource-group group_name --name vmss_name --instance-id 4 --command-id RunShellScript --scripts "service kubelet restart"
对于第二种,只能使用 Azure 命令让 Azure 知道更新。这意味着您可以扩展代理池,例如,使用 Azure CLI 命令:
az aks nodepool --resource-group group_name --name agentpool_name --cluster-name cluster_name --node-count 2