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
EXPERTE
gefragt vor 6 Monaten62 Aufrufe
1 Antwort
0

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

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

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

profile picture
EXPERTE
beantwortet vor 6 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen