EKS中的僵尸Pod

0

【以下的问题经过翻译处理】 大家好。最近我们遇到了一个增长的僵尸Pod问题。有谁知道Pod被僵尸/卡在Terminating状态的根本原因吗?我们一直收到以下错误:error killing pod: failed to "KillContainer" for "zombie-pod" with KillContainerError: "rpc error: code = Unknown desc = Error response from daemon: cannot stop container: 803b8598080nbdkau8i0n2526be67302a3748dbcbe3066ad0fae55707d1: container 803b8598080 PID 14597 is zombie and can not be killed. Use the --init option when creating containers to run an init inside the container that forwards signals and reaps processes"。

profile picture
专家
已提问 5 个月前40 查看次数
1 回答
0

【以下的回答经过翻译处理】 僵尸pod通常是由于容器中出现了无法停止的“僵尸”进程引起的。如果您最近经常遇到这种情况,那么就需要查看一下运行在容器中的应用程序/进程发生了什么变化。--init选项是Docker的一个设置,它将ENTRYPOINT设置为tini。这是一个初始化进程,成为PID 1,然后将您的应用程序作为进程的子进程处理。通常在应用程序无法正确处理信号(SIGTERM,SIGKILL)时使用该选项。Yelp还提供了另一个选项dumb-init

始终确保进程,特别是PID 1,能够正确处理信号是一种好习惯。大部分时间这不是问题,但是一些情况下会导致进程进入僵尸状态,例如重复调用、错误处理不当、嵌套调用,特别是在bash中。

在解决此问题时,首先要确保应用程序正确处理信号,并决定是否需要更新信号处理或甚至使用单独的初始化进程。您的应用程序或进程是否创建了孤立进程(失去与父进程的连接的进程)?

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则