Sobes.tech
Junior

Jaký je rozdíl mezi Pod a Deployment v Kubernetes?

sobes.tech AI

Odpověď od AI

Pod — nejmenší nasaditelná jednotka v Kubernetes, představující skupinu jednoho nebo více kontejnerů sdílejících úložiště a síťové zdroje, stejně jako specifikaci spuštění kontejnerů. Deployment — je kontroler Kubernetes, který poskytuje deklarativní aktualizaci Pods. Popisuje požadovaný stav aplikace a zajišťuje automatické nasazení, aktualizaci a rollback verzí Pods, spravující životní cyklus replik Pods.

Klíčové rozdíly:

  • Jednotka: Pod — základní jednotka plánování a nasazení; Deployment — kontroler vyšší úrovně pro správu Pods.
  • Životní cyklus: Pods nemají vestavěné mechanismy samoobnovy (kromě restartu kontejnerů při selhání); Deployment automaticky nahrazuje selhávající Pods a řídí jejich škálování.
  • Škálování: Přímé škálování Pods není efektivní; Deployment umožňuje snadné škálování počtu replik Pods.
  • Aktualizace/rollback: Pods nepodporují verzování a nasazování/rollback aktualizací; Deployment nabízí strategie pro plynulé aktualizace a rychlý rollback aplikace.

Příklad manifestu Pods:

apiVersion: v1
kind: Pod
metadata:
  name: my-app-pod
spec:
  containers:
  - name: my-app-container
    image: nginx:latest
    ports:
    - containerPort: 80

Příklad manifestu Deployment:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: my-app-deployment
spec:
  replicas: 3 # Požadovaný počet replik Pods
  selector:
    matchLabels:
      app: my-app # Selektor pro výběr Pods řízených tímto Deploymentem
  template:
    metadata:
      labels:
        app: my-app # Štítek pro Pods
    spec:
      containers:
      - name: my-app-container
        image: nginx:latest
        ports:
        - containerPort: 80

Porovnání:

Charakteristika Pod Deployment
Úroveň Nízká, základní jednotka Vyšší, kontroler
Správa Přímá, bez automatizace Deklarativní, automatizovaná
Škálování Ruční, nedoporučuje se Automatizované, podle replik
Aktualizace Chybí Deklarativní, strategie
Rollback Chybí Podporováno
Samoobnova Omezená (restart kontejneru) Automatická výměna Pods

Ve většině případů při nasazení aplikací v Kubernetes se používají Deploymenty pro správu Pods, zajišťující spolehlivost, škálovatelnost a automatizaci.