Sobes.tech
Junior

Ce trebuie să fie în interiorul unui Pod în Kubernetes?

sobes.tech AI

Răspuns de la AI

Într-un Pod Kubernetes trebuie să se afle:

  • Unul sau mai multe containere legate între ele, care funcționează ca o singură unitate și împart resurse.
  • Stocare de date comună (Volumes) pentru containerele din Pod.
  • O stivă de rețea comună pentru toate containerele (conform specificației IP).
  • Specificația Pod (obiectul PodSpec), care descrie modul în care trebuie să funcționeze containerele, inclusiv:
    • Imaginile containerelor.
    • Resursele necesare (CPU, memorie).
    • Porturile deschise.
    • Variabilele de mediu.
    • Probe de sănătate (sonde de vivacitate și de pregătire).
    • Politicile de repornire.

Utilizare tipică:

  • Un container principal al aplicației.
  • Unul sau mai multe containere "sidecar" care execută sarcini auxiliare (înregistrare, monitorizare, adaptoare).

Exemplu de specificație parțială a Podului:

# Exemplu de specificație parțială a Podului
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: {}

Principii fundamentale:

  • Podul este cea mai mică unitate de implementare în Kubernetes.
  • Containerele din același Pod împart spațiul de nume al nucleului (PID, UTS, IPC).
  • Scalarea se face la nivel de Pod.
  • Podul este destinat să găzduiască procese strâns legate.