Sobes.tech
Junior

V čom spočíva rozdiel medzi podom a kontajnerom?

sobes.tech AI

Odpoveď od AI

Kontajner je izolovaný proces alebo skupina procesov, ktorá obsahuje závislosti, knižnice a konfiguračné súbory potrebné na spustenie aplikácie.

(V) v Kubernetes je najmenšia nasaditeľná jednotka. Je to abstrakcia nad jedným alebo viacerými kontajnermi, ktoré bežia na jednom uzle a majú spoločný sieťový priestor a zdroje úložiska. Kontajnery vnútri jedného podu sú vždy umiestnené spolu, plánované spoločne a zdieľajú prostredie na spustenie.

Hlavné rozdiely:

  • Úroveň abstrakcie: Kontajner je izolované prostredie pre jednu aplikáciu alebo proces. Pod je skupina jedného alebo viacerých kontajnerov, ktoré fungujú ako celok.
  • Nasadenie: Kontajnery sa nasadzujú vo vnútri podov v Kubernetes. Nie je možné nasadiť samostatný kontajner priamo v Kubernetes.
  • Sieťové prostredie: Kontajnery vnútri jedného podu používajú rovnaký sieťový priestor (IP a porty). Kontajnery v rôznych podoch majú odlišné sieťové priestory.
  • Ukladanie: Kontajnery vnútri jedného podu môžu zdieľať volume na ukladanie dát.
  • Životný cyklus: Pody riadia svoj životný cyklus. Ak jeden kontajner v podu skončí, pod ho môže reštartovať alebo ukončiť sám podľa politiky reštartu.
# Príklad podu s jedným kontajnerom
apiVersion: v1
kind: Pod
metadata:
  name: my-single-container-pod
spec:
  containers:
  - name: my-app-container
    image: nginx:latest
    ports:
    - containerPort: 80
# Príklad podu so dvomi kontajnermi
apiVersion: v1
kind: Pod
metadata:
  name: my-multi-container-pod
spec:
  containers:
  - name: main-app-container
    image: my-app:latest
    ports:
    - containerPort: 8080
  - name: sidecar-logger-container
    image: fluentd:latest
    volumeMounts:
    - name: app-logs
      mountPath: /var/log/app
  volumes:
  - name: app-logs
    emptyDir: {} # Príklad spoločného volume
Charakteristika Kontajner Pod
Úroveň abstrakcie Izolované prostredie pre proces alebo aplikáciu Skupina jedného alebo viacerých kontajnerov
Nasadenie Uvnitř podu Nezávislá jednotka nasadenia v Kubernetes
Sieťové prostredie Vlastné (docker) alebo spoločné s podom (k8s) Spoločné pre všetky kontajnery v podu
Ukladanie Vlastné alebo spoločné s podom cez volume Spoločné s kontajnermi cez volume
Riadenie Riadi sa prostredím na vykonávanie alebo podom Riadi sa Kubernetes Control Plane
Škálovanie Škáluje na úrovni podov Škáluje na úrovni podov