Kubernetes pod /容器正在运行但没有列出'kubectl get pods'?

问题描述 投票:0回答:1

我有一个问题,从表面上看,似乎表明我在我的kube集群中有两个并行运行的部署,但'kubectl get pods'只显示一个部署。

我的部署由一个带有两个容器的pod组成。其中一个容器运行一个创建http API端点的golang应用程序,另一个运行Telegraf以从API端点读取指标并将它们推送到InfluxDB。将数据写入Influx时,我使用源主机标记数据作为pod的名称。我使用Grafana绘制度量标准,我可以清楚地看到来自两个主机的传入流数据(例如,我可以将“WHERE host =”查询子句设置为“application-pod-name-231620957-7n32f”和“application-pod” -name-1931165991-x154c“)。

基于以上所述,我相当确定pod的两个部署正在运行,每个部署都有两个容器(一个提供应用程序指标,另一个使用telegraf向InfluxDB发送指标)。

但是,kube似乎认为其中一个部署不存在。如上所述,“kubectl get pods”不会以任何形式或形式显示第二个pod名称。只有其中一个。

有没有人见过这个?有关进一步故障排除的想法我试图使用pod名称(我在telegraf中)使用kubectl查询更多信息,但总是得到pod不存在的响应......但它必须存在!它正在发送实时数据!

kubernetes kubectl telegraf
1个回答
0
投票

我们遇到了群集中节点的问题。具体而言,该节点遇到GC故障,并且该节点与群集的通信中断。由于这些失败,我们团队中的某个人在群集内的节点上执行了“kubectl delete”。通过这样做,节点继续运行,但节点上运行的kubelet仍然处于中断状态,因此节点无法将自身重新自动注册到集群中。该节点碰巧正在运行第二个pod,并且节点上运行的pod继续运行而没有问题。在我们的示例中,节点在AWS上运行,在这种情况下,避免这种情况的方法是从AWS控制台或AWS API重新启动节点。

© www.soinside.com 2019 - 2024. All rights reserved.