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 |