Zum Inhalt

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

chart:
  extraContainers: []

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, statefulsetVolume oder daemonsetVolume) definiert sind.
  • Für Probes, Umgebungsvariablen und Ressourcen gelten die gleichen Kubernetes-Regeln wie für normale Container.

Siehe auch