繁体   English   中英

如何在整个 pod 生命周期中保持进程运行?

[英]How to keep a process running throughout pod lifecycle?

根据此链接,所有初始化容器始终运行完成。 并且 init 容器必须在下一个启动之前成功完成。

就我而言,有一种情况我想在整个 pod 生命周期中保持一个进程运行,这与在整个 pod 生命周期中保留emptyDir的方式非常相似。

我做了所有的研究,但找不到方法。 是否有解决方法来实现目标?

在这种情况下,使用shareProcessNamespace: true会有所帮助。 我们只需要通过 init 容器在后台启动一个子进程。

这是一个例子

---
apiVersion: v1
kind: Pod
metadata:
  labels:
    app: demo
  name: demo
spec:
  shareProcessNamespace: true
  initContainers:
    - name: iapp
      image: nicolaka/netshoot:latest
      command:
        - "bash"
      args:
        - "-c"
        - "tail -f /dev/null & echo iapp"
  containers:
    - name: app
      image: nicolaka/netshoot:latest
      command:
        - "sleep"
      args:
        - "inifinity"

pod 运行后,当我们 exec 进入app容器时,执行ps aux 我们可以看到tail -f /dev/null仍然存在。 这证实了我们可以在整个 pod 生命周期中运行一个进程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM