Junior
Kan een enkele pod meerdere containers bevatten?
sobes.tech AI
Antwoord van AI
Ja, dat kan. Het is een gangbare praktijk in Kubernetes.
Meerdere containers in een pod delen meestal resources (opslagruimte, netwerkstack) en worden vaak gebruikt voor hulpprocessen naast de hoofdapplicatiecontainer (Sidecar-patroon).
Voorbeelden van gebruik:
- Sidecar-containers: Monitoring, logging, service mesh proxy (bijvoorbeeld Envoy).
- Ambassadeur-containers: Proxy voor toegang tot externe diensten.
- Adapter-containers: Normalisatie van de uitvoer van hulpprocessen.
Containers in een pod worden altijd gepland op dezelfde knoop (Node) en gebruiken dezelfde namespace voor IPC (interprocescommunicatie), waardoor ze met elkaar kunnen communiceren.
Voorbeeld van een pod-manifest met twee containers (hoofdapplicatie nginx en sidecar-container voor logging):
// apiVersion - versie van de Kubernetes API
apiVersion: v1
// kind - objecttype (in dit geval Pod)
kind: Pod
// metadata - metadata van de pod (naam, labels, enz.)
metadata:
name: multi-container-pod
spec:
// containers - lijst van containers binnen de pod
containers:
// Eerste container - hoofdapplicatie (nginx)
- name: main-app
image: nginx:latest
ports:
// open poort 80
- containerPort: 80
// Tweede container - sidecar voor logging (fictief voorbeeld)
- name: log-sidecar
image: busybox:latest
args:
// oneindige lus om logging te simuleren
- /bin/sh
- -c
- while true; do echo "Logging from sidecar..."; sleep 5; done