Sobes.tech
Middle

Co je to init kontejner v Kubernetes?

sobes.tech AI

Odpověď od AI

Speciální kontejner v podu, který dokončí svou práci před spuštěním hlavních kontejnerů v podu.

Jeho účel:

  • Inicializace prostředí před spuštěním hlavní aplikace.
  • Načítání konfigurací nebo skriptů.
  • Čekání na připravenost externích služeb (databáze, API).
  • Nastavení souborového systému nebo oprávnění.

Hlavní vlastnosti:

  • Spouští se v pořadí uvedeném ve specifikaci podu.
  • Každý init-kontejner musí úspěšně dokončit, než začne další nebo hlavní kontejnery.
  • Pokud init-kontejner selže, Kubernetes restartuje pod, dokud se init-kontejner úspěšně nedokončí (podle politiky restartu).
  • Mají přístup ke sdílenému volume podu, což umožňuje předávání dat hlavním kontejnerům.

Specifikace v YAML:

// Příklad specifikace podu s init-kontejnerem
apiVersion: v1
kind: Pod
metadata:
  name: my-pod
spec:
  initContainers: // Seznam init-kontejnerů
  - name: init-myservice // Název init-kontejneru
    image: my-init-image // Obraz init-kontejneru
    command: ["sh", "-c", "echo 'Initializing...' && sleep 5"] // Příkaz k provedení
  containers: // Seznam hlavních kontejnerů
  - name: my-app // Název hlavního kontejneru
    image: my-app-image // Obraz hlavního kontejneru
    ports:
    - containerPort: 80