Sobes.tech
Junior

Čo by malo byť vo vnútri Podu v Kubernetes?

sobes.tech AI

Odpoveď od AI

V Kubernetes pod by mali byť:

  • Jeden alebo viac súvisiacich kontajnerov, ktoré fungujú ako jedna jednotka a zdieľajú zdroje.
  • Spoločné úložiská dát (Volumes) pre kontajnery v pod.
  • Spoločná sieťová zásuvka pre všetky kontajnery (podľa špecifikácie IP).
  • Špecifikácia podu (objekt PodSpec), ktorá opisuje, ako majú kontajnery fungovať, vrátane:
    • Obrazov kontajnerov.
    • Potrebných zdrojov (CPU, pamäť).
    • Otvorených portov.
    • Premenných prostredia.
    • Kontrolných sond (liveness a readiness probes).
    • Politík reštartu.

Typické použitie:

  • Jeden hlavný kontajner aplikácie.
  • Jeden alebo viac "sidecar" kontajnerov, ktoré vykonávajú pomocné úlohy (logovanie, monitorovanie, adaptéry).

Príklad čiastočnej špecifikácie podu:

# Príklad čiastočnej špecifikácie podu
apiVersion: v1
kind: Pod
metadata:
  name: my-app-pod
spec:
  containers:
  - name: main-app
    image: my-docker-repo/my-app:latest
    ports:
    - containerPort: 80
    resources:
      limits:
        cpu: "500m"
        memory: "512Mi"
  - name: log-collector
    image: my-docker-repo/log-collector:latest
    volumeMounts:
    - name: app-logs
      mountPath: /var/log/app
  volumes:
  - name: app-logs
    emptyDir: {}

Základné princípy:

  • Pod je najmenšia nasaditeľná jednotka v Kubernetes.
  • Kontajnery v jednom podu zdieľajú jadrový priestor (PID, UTS, IPC).
  • Škálovanie sa vykonáva na úrovni podu.
  • Pod je určený na hostovanie tesne súvisiacich procesov.