Sobes.tech
Middle

Čo je to init kontajner v Kubernetes?

sobes.tech AI

Odpoveď od AI

Špeciálny kontajner v pod, ktorý ukončí svoju prácu predtým, ako hlavné kontajnery v pod začnú svoju činnosť.

Jeho účel:

  • Inicializovať prostredie pred spustením hlavnej aplikácie.
  • Načítať konfigurácie alebo skripty.
  • Čakať na pripravenosť externých služieb (databázy, API).
  • Nastaviť súborový systém alebo oprávnenia.

Hlavné vlastnosti:

  • Spúšťa sa v poradí uvedenom v špecifikácii podu.
  • Každý init-kontajner musí úspešne dokončiť, než začne ďalší alebo hlavné kontajnery.
  • Ak init-kontajner zlyhá, Kubernetes reštartuje pod, kým init-kontajner úspešne nedokončí (podľa politiky reštartu podu).
  • Majú prístup k spoločnému volume podu, čo umožňuje prenášanie dát hlavným kontajnerom.

Špecifikácia v YAML:

// Príklad špecifikácie podu s init-kontajnerom
apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  initContainers: // Zoznam init-kontajnerov
  - name: init-myservice // Názov init-kontajnera
    image: my-init-image // Obraz init-kontajnera
    command: ["sh", "-c", "echo 'Initializing...' && sleep 5"] // Príkaz na vykonanie
  containers: // Zoznam hlavných kontajnerov
  - name: my-app // Názov hlavného kontajnera
    image: my-app-image // Obraz hlavného kontajnera
    ports:
    - containerPort: 80