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