我的容器有兩個容器 - 主容器和邊車容器,用於監視主容器中的/var/run/utmp
文件,並在其更改時採取相應措施。我試圖弄清楚如何讓這個文件在邊車容器中可見。我可以在容器中的容器之間共享單個文件嗎?
This page描述如何使用捲來共享容器中容器之間的目錄。但是,這似乎只適用於目錄,而不是單個文件。我也不能使用這種策略來共享主容器中的整個/var/run/
目錄,因爲在那裏安裝一個卷會擦除容器需要運行的目錄的內容。
我試圖通過在另一個目錄中創建一個符號鏈接到utmp
並安裝該目錄來解決此問題,但它看起來並不像卷中的符號鏈接以它們需要的方式解決它的工作方式。
有沒有什麼辦法可以讓容器中的一個文件對同一個容器中的其他容器可見?我正在試驗的清單看起來像這樣:
apiVersion: v1
kind: Pod
metadata:
name: utmp-demo
spec:
restartPolicy: Never
containers:
- name: main
image: debian
command: ["/bin/bash"]
args: ["-c", "sleep infinity"]
volumeMounts:
- name: main-run
mountPath: /var/run # or /var/run/utmp, which crashes
- name: helper
image: debian
command: ["/bin/bash"]
args: ["-c", "sleep infinity"]
volumeMounts:
- name: main-run
mountPath: /tmp/main-run
volumes:
- name: main-run
emptyDir: {}
不知道subPath是否可以在這裏工作,但可能值得嘗試。[Here](https://github.com/kubernetes/kubernetes/issues/41638)就是一個例子。但我會嘗試在路徑中包含文件名,類似於只包含configMap的一個文件。 – oe18
似乎沒有幫助,即使使用subPath,目錄的其餘部分似乎也被清除了。 –
那麼簡單地創建/ var/run/utmp文件與主容器啓動時的原始文件具有相同的權限呢?我認爲它在開始時已經是一個空文件(沒有安裝任何音量)。 – turkenh