Junior
V čem spočívá rozdíl mezi podem a kontejnerem?
sobes.tech AI
Odpověď od AI
Kontejner je izolovaný proces nebo skupina procesů, která obsahuje závislosti, knihovny a konfigurační soubory potřebné pro spuštění aplikace.
(V) v Kubernetes je nejmenší nasaditelná jednotka. Je to abstrakce nad jedním nebo více kontejnery, které běží na jednom uzlu a sdílejí společný síťový prostor a úložné zdroje. Kontejnery uvnitř jednoho podu jsou vždy umístěny spolu, plánovány společně a sdílejí prostředí běhu.
Hlavní rozdíly:
- Úroveň abstrakce: Kontejner je izolované prostředí pro jednu aplikaci nebo proces. Pod je skupina jednoho nebo více kontejnerů, které fungují jako celek.
- Nasazení: Kontejnery jsou nasazovány uvnitř podů v Kubernetes. Nelze přímo nasadit samostatný kontejner v Kubernetes.
- Síťové prostředí: Kontejnery uvnitř jednoho podu používají stejný síťový prostor (IP a porty). Kontejnery v různých podech mají odlišné síťové prostory.
- Uložení: Kontejnery uvnitř jednoho podu mohou sdílet volume pro ukládání dat.
- Životní cyklus: Pody řídí životní cyklus svých kontejnerů. Pokud jeden kontejner v podu skončí, pod jej může restartovat nebo ukončit sám podle politiky restartu.
# Příklad podu s jedním kontejnerem
apiVersion: v1
kind: Pod
metadata:
name: my-single-container-pod
spec:
containers:
- name: my-app-container
image: nginx:latest
ports:
- containerPort: 80
# Příklad podu se dvěma kontejnery
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: {} # Příklad společného volume
| Charakteristika | Kontejner | Pod |
|---|---|---|
| Úroveň abstrakce | Izolované prostředí pro proces nebo aplikaci | Skupina jednoho nebo více kontejnerů |
| Nasazení | Uvnitř podu | Nezávislá nasaditelná jednotka v Kubernetes |
| Síťové prostředí | Vlastní (docker) nebo společné s podem (k8s) | Společné pro všechny kontejnery v podu |
| Uložení | Vlastní nebo společné s podem přes volume | Společné s kontejnery přes volume |
| Řízení | Řízeno prostředím běhu nebo podem | Řízeno Kubernetes Control Plane |
| Škálování | Škáluje na úrovni podů | Škáluje na úrovni podů |