簡體   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