簡體   English   中英

kube.netes init 容器在 pod 運行過程中會消耗資源嗎?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM