Sobes.tech
Middle

Mi az az init-konténer a Kubernetesben?

sobes.tech MI

Válasz az MI-től

Egy speciális konténer egy podban, amely befejezi a munkáját, mielőtt a pod fő konténerei elindulnának.

Célja:

  • A környezet inicializálása a fő alkalmazás indítása előtt.
  • Konfigurációk vagy szkriptek betöltése.
  • Külső szolgáltatások (adatbázisok, API-k) készenlétének várása.
  • Fájlrendszer vagy jogosultságok beállítása.

Fő jellemzők:

  • A pod specifikációjában megadott sorrendben futnak.
  • Minden init-konténernek sikeresen be kell fejeződnie, mielőtt a következő vagy a fő konténerek elindulnának.
  • Ha egy init-konténer hibával zárul, a Kubernetes újraindítja a podot, amíg az init-konténer sikeresen be nem fejeződik (a pod újraindítási politikájától függően).
  • Hozzáférésük van a pod közös volume-jéhez, ami lehetővé teszi adatok átadását a fő konténereknek.

YAML specifikáció:

// Init-konténerrel ellátott pod példája
apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  initContainers: // Init-konténerek listája
  - name: init-myservice // Init-konténer neve
    image: my-init-image // Init-konténer képe
    command: ["sh", "-c", "echo 'Initializing...' && sleep 5"] // Végrehajtandó parancs
  containers: //  konténerek listája
  - name: my-app //  konténer neve
    image: my-app-image //  konténer képe
    ports:
    - containerPort: 80