[英]Will kubernetes init containers consume resource during pod running?
我創建了一個初始化容器來掛載卷。
這是一個示例,實際上我將使用該卷將一些東西注入主容器以進行監視。 想象一下,我將為所有當前正在運行的 pod 執行此操作,重建所有圖像並不好。
初始容器 dockerfile:
FROM alpine:3.15
RUN apk add curl
RUN curl -Lo /tmp/resource.zip "https://some/resource.zip" && unzip /tmp/resource.zip -d /data/
吊艙 yaml:
...
volumes:
- name: my-volume
emptyDir: {}
initContainers:
- name: my-volume
image: init/container/image:tag
command: ['sh']
args: ['-c', 'cp -r /data/* /var/volume/']
volumeMounts:
- name: my-volume
mountPath: /var/volume
containers:
- name: main-app
image: python:3.9-alpine
command: ['sh']
args: ['-c', 'cd /var/volume && python -m http.server 80']
volumeMounts:
- name: my-volume
mountPath: /var/volume
...
init 容器會在運行時繼續消耗 cpu 和 memory 嗎? 它就像是在主容器之前退出的工作嗎? 如果有,init容器退出后的volume是怎么提供的?
在同一 pod 中運行的容器的行為就像它們在同一“邏輯主機”中運行一樣。 只會關聯一個IP號,也只會關聯一組存儲卷,可以同時掛載到多個容器上。
docker 引擎將創建一個單一的持久卷“my-volume”,然后首先運行安裝了該卷的 init-container 進程,然后運行具有相同卷(以及相同的 IP 地址)的主應用程序。
初始化容器的 cpu 和 memory 資源在該容器完成時釋放。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.