Middle
Šta je init kontejner u Kubernetesu?
sobes.tech АИ
Одговор од АИ
Specijalni kontejner u podu koji završava svoj rad pre nego što glavni kontejneri u podu počnu.
Svrha:
- Inicijalizacija okruženja pre pokretanja glavne aplikacije.
- Učitavanje konfiguracija ili skripti.
- Čekanje da eksterni servisi (baze podataka, API) budu spremni.
- Podešavanje fajl sistema ili prava pristupa.
Glavne karakteristike:
- Izvršavaju se u redosledu navedenom u specifikaciji poda.
- Svaki init-kontejner mora uspešno da se završi pre nego što sledeći počne ili pre nego što glavni kontejneri počnu sa radom.
- Ako init-kontejner padne sa greškom, Kubernetes restartuje pod dok init-kontejner ne uspešno ne završi (u skladu sa politikom restartovanja poda).
- Imaju pristup zajedničkom volumenu poda, što omogućava prenos podataka glavnim kontejnerima.
Specifikacija u YAML:
// Primer specifikacije poda sa init-kontejnerom
apiVersion: v1
kind: Pod
metadata:
name: my-pod
spec:
initContainers: // Lista init-kontejnera
- name: init-myservice // Ime init-kontejnera
image: my-init-image // Slika init-kontejnera
command: ["sh", "-c", "echo 'Initializing...' && sleep 5"] // Komanda za izvršenje
containers: // Lista glavnih kontejnera
- name: my-app // Ime glavnog kontejnera
image: my-app-image // Slika glavnog kontejnera
ports:
- containerPort: 80