Extra Containers¶
Mit chart.extraContainers können zusätzliche Container zum Pod hinzugefügt werden. Die Einträge werden direkt als Kubernetes-Container-Spezifikationen in das Pod-Manifest übernommen.
Dieses Feature ist seit Version 1.18.0 verfügbar und ergänzt den Haupt-Container sowie den optionalen Sidecar um beliebig viele weitere Container im selben Pod.
Konfiguration¶
Beispiel: Log-Container neben Nginx und PHP-FPM¶
Basierend auf omh-nginx-phpfpm-logs-values.yaml:
chart:
enabled: true
deployment: true
fullnameOverride: "application"
container:
image: nginx
ports:
- name: http
containerPort: 80
protocol: TCP
sidecar:
enabled: true
image: phpfpm
extraContainers:
- name: laravellogs
image: alpine:3.14
command:
- tail
- -f
- app/storage/logs/laravel.log
Vollständiges Container-Beispiel¶
Jeder Eintrag in extraContainers muss eine gültige Kubernetes-Container-Definition sein:
chart:
extraContainers:
- name: metrics-exporter
image: prom/node-exporter:latest
ports:
- name: metrics
containerPort: 9100
protocol: TCP
resources:
limits:
cpu: 100m
memory: 128Mi
requests:
cpu: 50m
memory: 64Mi
volumeMounts:
- name: shared-logs
mountPath: /var/log/app
readOnly: true
Unterschied zu Sidecar¶
sidecar | extraContainers | |
|---|---|---|
| Anzahl | Genau ein Sidecar | Beliebig viele Container |
| Konfiguration | Über dedizierte ohMyHelm-Schlüssel (image, env, Probes, …) | Native Kubernetes-Container-Spezifikation |
| Typischer Einsatz | Standard-Pattern (Proxy, PHP-FPM, Logging) | Spezialfälle mit voller Container-Kontrolle |
Hinweise¶
- Extra Containers werden zusätzlich zum Haupt-Container und optionalen Sidecar erstellt.
- Volume-Mounts müssen auf Volumes verweisen, die im entsprechenden
*Volume-Abschnitt (deploymentVolume,statefulsetVolumeoderdaemonsetVolume) definiert sind. - Für Probes, Umgebungsvariablen und Ressourcen gelten die gleichen Kubernetes-Regeln wie für normale Container.