gpt4 book ai didi

node.js - Kubernetes 相当于 `docker run --init`

转载 作者:IT老高 更新时间:2023-10-28 12:46:28 25 4
gpt4 key购买 nike

建议的最佳做法是不要将 dockerized Node.JS 应用程序作为 PID 1 运行(请参阅 https://github.com/nodejs/docker-node/blob/master/docs/BestPractices.md#handling-kernel-signals )以正确捕获信号。

docker run 命令提供了 --init 标志,用一个可以正确转发信号的小型 init 系统包装应用程序入口点。

Kubernetes 中是否有内置的 --init 标志?

我探索了 Kubernetes 1.10 的 Pod 和 Container 对象规范,但没有看到任何与指定镜像如何启动相关的内容。

另一种方法是显式包含和使用 Tini在每个容器中,但我真的很想以某种方式以 --init 标志的行为方式透明地执行它。

还有其他选择吗?

最佳答案

如果您为 pod 启用进程 (PID) 命名空间共享,则 init 进程 (pause) 将来自 Kubernetes。如果您的容器有单独的进程命名空间,则它们需要包含 tini 或其他 init 进程本身。

根据https://www.ianlewis.org/en/almighty-pause-container ,Kubernetes 1.7 默认有一个共享进程命名空间和一个 kubelet 标志来禁用它,1.8 默认情况下它是关闭的,一个 kubelet 标志来启用它。 Kubernetes 1.11 具有启用共享进程命名空间的 alpha 功能: https://kubernetes.io/docs/tasks/configure-pod-container/share-process-namespace/

关于node.js - Kubernetes 相当于 `docker run --init`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50803268/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com