Sobes.tech
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