Junior
Může v jednom podu být více kontejnerů?
sobes.tech AI
Odpověď od AI
Ano, může. Je to běžná praxe v Kubernetes.
Více kontejnerů v jednom podu obvykle sdílí zdroje (úložný prostor, síťový zásobník) a často jsou používány pro pomocné úkoly vedle hlavního kontejneru aplikace (vzorec Sidecar).
Příklady použití:
- Sidecar kontejnery: Monitoring, logování, proxy mesh služby (například Envoy).
- Ambasador kontejnery: Proxy pro přístup k externím službám.
- Adapter kontejnery: Normalizace výstupu pomocných procesů.
Kontejnery v podu jsou vždy plánovány na stejném uzlu a používají stejný namespace pro IPC (meziprocesovou komunikaci), což jim umožňuje vzájemně komunikovat.
Příklad manifestu podu se dvěma kontejnery (hlavní aplikace nginx a sidecar pro logování):
// apiVersion - verze API Kubernetes
apiVersion: v1
// kind - typ objektu (v tomto případě Pod)
kind: Pod
// metadata - metadata podu (název, štítky atd.)
metadata:
name: multi-container-pod
spec:
// containers - seznam kontejnerů uvnitř podu
containers:
// První kontejner - hlavní aplikace (nginx)
- name: main-app
image: nginx:latest
ports:
// otevřít port 80
- containerPort: 80
// Druhý kontejner - sidecar pro logování (fiktivní příklad)
- name: log-sidecar
image: busybox:latest
args:
// nekonečná smyčka pro simulaci logování
- /bin/sh
- -c
- while true; do echo "Logging from sidecar..."; sleep 5; done