Junior
Môže byť v jednom podu viacero kontajnerov?
sobes.tech AI
Odpoveď od AI
Áno, môže byť. Je to bežná prax v Kubernetes.
Viaceré kontajnery v jednom podi zdieľajú zvyčajne zdroje (úložný priestor, sieťový zásobník) a často sa používajú na vykonávanie pomocných úloh vedľa hlavného kontajnera aplikácie (vzorec Sidecar).
Príklady použitia:
- Sidecar kontajnery: Monitorovanie, logovanie, proxy mesh služby (napríklad Envoy).
- Ambassador kontajnery: Proxy na prístup k externým službám.
- Adapter kontajnery: Normalizácia výstupu pomocných procesov.
Kontajnery v podi sú vždy plánované na tom istom uzle (Node) a používajú rovnaký namespace pre IPC (interprocesovú komunikáciu), čo im umožňuje navzájom komunikovať.
Príklad manifestu podu so dvomi kontajnermi (hlavná aplikácia nginx a sidecar na logovanie):
// apiVersion - verzia API Kubernetes
apiVersion: v1
// kind - typ objektu (v tomto prípade Pod)
kind: Pod
// metadata - metadáta podu (názov, štítky atď.)
metadata:
name: multi-container-pod
spec:
// containers - zoznam kontajnerov v podi
containers:
// Prvý kontajner - hlavná aplikácia (nginx)
- name: main-app
image: nginx:latest
ports:
// otvoriť port 80
- containerPort: 80
// Druhý kontajner - sidecar na logovanie (fiktívny príklad)
- name: log-sidecar
image: busybox:latest
args:
// nekonečná slučka na simuláciu logovania
- /bin/sh
- -c
- while true; do echo "Logging from sidecar..."; sleep 5; done