AKS-错误的Pod状态

时间:2020-02-18 19:07:24

标签: kubernetes kubectl azure-aks kubernetes-pod azure-kubernetes

我有一个带有两个节点池的AKS群集。节点池1有3个节点,节点池2有1个节点-所有Linux VM。我注意到,停止虚拟机并执行kubectl get pod之后,尽管虚拟机实际上并未运行,但Pods状态显示为“正在运行”。这怎么可能?

这是我尝试的命令:kubectl get pods -n development -o=wide

下面是屏幕截图。尽管虚拟机未运行,但Pod状态显示为“正在运行”。但是,尝试使用服务的公共IP访问该应用会导致

ERR_CONNECTION_TIMED_OUT

enter image description here

2 个答案:

答案 0 :(得分:2)

有关此问题,这里是全主题(https://github.com/kubernetes/kubernetes/issues/55713)。这里的问题是,默认情况下,当当前节点变为notReady时,pod会等待5分钟,然后逐出到另一个节点,但是在这种情况下,没有一个工作节点准备就绪,因此pod不会被逐出。请参阅git问题,其中提供了一些建议和解决方案。

答案 1 :(得分:0)

实际上发生的事情与节点上运行的kubelet进程有关,无法将其状态提供给Kubernetes API服务器。当与POD关联的节点脱机时,Kubernetes将始终假定您的POD正在运行。所有节点均处于脱机状态,实际上将导致您的POD无法运行,因此无法访问,从而导致ERR_CONNECTION_TIMED_OUT

您可以运行kubectl get nodes来获取节点的状态,它们应显示NotReady。请检查并让我知道。 另外,您能否提供kubectl get pods -A

的输出