1 回答
- 最新
- 投票最多
- 评论最多
0
【以下的回答经过翻译处理】 僵尸pod通常是由于容器中出现了无法停止的“僵尸”进程引起的。如果您最近经常遇到这种情况,那么就需要查看一下运行在容器中的应用程序/进程发生了什么变化。--init选项是Docker的一个设置,它将ENTRYPOINT设置为tini。这是一个初始化进程,成为PID 1,然后将您的应用程序作为进程的子进程处理。通常在应用程序无法正确处理信号(SIGTERM,SIGKILL)时使用该选项。Yelp还提供了另一个选项dumb-init。
始终确保进程,特别是PID 1,能够正确处理信号是一种好习惯。大部分时间这不是问题,但是一些情况下会导致进程进入僵尸状态,例如重复调用、错误处理不当、嵌套调用,特别是在bash中。
在解决此问题时,首先要确保应用程序正确处理信号,并决定是否需要更新信号处理或甚至使用单独的初始化进程。您的应用程序或进程是否创建了孤立进程(失去与父进程的连接的进程)?