【问题标题】:"Ghost" kubernetes pod stuck in terminating“幽灵”kubernetes pod 卡在终止状态
【发布时间】:2019-01-04 15:31:14
【问题描述】:

情况

我有一个 kubernetes pod 卡在“终止”状态,阻止删除 pod

NAME                             READY STATUS       RESTARTS   AGE
...
funny-turtle-myservice-xxx-yyy   1/1   Terminating  1          11d
...

其中funny-turtle 是已被删除的掌舵版本的名称。

我尝试过的

尝试删除 pod。

输出:pod "funny-turtle-myservice-xxx-yyy" deleted 结果:它仍然显示在相同的状态。 - 也尝试了--force --grace-period=0,同样的结果带有额外的警告

警告:立即删除不会等待确认正在运行的资源已终止。该资源可能会无限期地继续在集群上运行。

尝试读取日志(kubectl logs ...)。

结果:Error from server (NotFound): nodes "ip-xxx.yyy.compute.internal" not found

尝试删除 Kubernetes 部署。

但它不存在。

所以我假设这个 pod 不知何故从 aws API 中“断开”,这是从 kubectl logs 打印的错误消息中推断出来的。

我会接受任何建议或指导来解释这里发生的事情以及如何摆脱它。

编辑 1

试图查看“ghost”节点是否仍然存在(kubectl delete node ip-xxx.yyy.compute.internal)但它不存在。

【问题讨论】:

  • kubectl get nodes 的输出是什么?
  • @ChrisStryczynski kubectl get nodes | grep ip-xxx.yyy.compute.internal 空结果。但是在节点列表中还有其他几个格式相同的ip(不同的xxxs和yyys)

标签: kubernetes devops kubernetes-helm


【解决方案1】:

尝试从 pod 中移除终结器:

kubectl patch pod funny-turtle-myservice-xxx-yyy -p '{"metadata":{"finalizers":null}}'

【讨论】:

  • 有效!你知道是什么让这个 pod 处于这种状态吗?
  • 也为我工作!谢谢,这救了我的命。 PS:您的命令中有错字,缺少结尾的'。
【解决方案2】:

在我的情况下,接受的答案提出的解决方案不起作用,它一直停留在“终止”状态。对我来说,诀窍是:

kubectl delete pods <pod> --grace-period=0 --force

【讨论】:

  • 这实际上并没有删除 pod。它只会删除对容器的引用,并且容器可能会永远继续运行
【解决方案3】:

在我的情况下,没有任何工作,没有日志,没有删除,绝对没有。我必须重新启动所有节点,然后情况才好转,不再有 Terminating pod。

【讨论】:

猜你喜欢
  • 2019-09-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-25
  • 1970-01-01
  • 2017-07-09
  • 2018-03-04
  • 1970-01-01
相关资源
最近更新 更多