Skip to Content
CubyKubernetes

Kubernetes Operator

Cuby kann in einem Kubernetes-Cluster als Operator betrieben werden. In diesem Modus werden Produkte nicht als lokale Prozesse, sondern als Kubernetes- Deployments verwaltet.

Vergleich: Lokal vs. Kubernetes

AspektLokaler ModusKubernetes Operator
ProdukteChild-ProzesseDeployments/Services
Konfiguration~/.processcube/config.jsonConfigMaps + Secrets
API KeyBun.secretsK8s Secret processcube-api-key
LogsDatei + In-MemoryPod Logs
HealthHTTP-EndpunkteLiveness/Readiness Probes
SkalierungEinzelner ProzessReplicas, Rolling Restart

Aktivierung

Der Operator-Modus wird aktiviert durch:

  • Umgebungsvariable: CUBY_MODE=operator
  • Automatische Erkennung: Service Account Token im Cluster vorhanden
CUBY_MODE=operator cuby

Kubernetes-Ressourcen

Im Operator-Modus erstellt Cuby pro Produkt folgende Ressourcen:

RessourceBeschreibung
DeploymentProdukt-Container mit Resource-Limits und Health-Probes
ServiceClusterIP Service für internen Zugriff
ConfigMapUmgebungsvariablen für das Produkt
IngressExterner Zugriff (wenn Domain konfiguriert)

Ingress-Varianten

Cuby unterstützt verschiedene Ingress-Controller:

TypBeschreibung
TraefikTraefik IngressRoute mit Middleware
NginxStandard Kubernetes Ingress mit nginx-Annotationen

Die Ingress-Variante wird beim Manifest-Generator ausgewählt.

API Key

Im Operator-Modus wird der API Key aus einem Kubernetes Secret gelesen:

apiVersion: v1 kind: Secret metadata: name: processcube-api-key type: Opaque data: api-key: <base64-encoded-api-key>

Skalierung und Updates

  • Replicas: Produkte können auf mehrere Instanzen skaliert werden
  • Rolling Restart: Updates werden ohne Downtime durchgeführt
  • Pod Logs: Logs werden direkt aus den Pods gelesen

Manifest-Generator

Für die initiale Einrichtung im Cluster steht ein Web-basierter Manifest-Generator bereit:

marketplace.processcube.io/cuby/manifest 

Konfigurationsfelder

FeldBeschreibung
NamespaceKubernetes-Namespace für alle Cuby-Ressourcen
HostnameDomain für den Ingress-Zugriff
Ingress Typetraefik oder nginx
Cert-Manager Cluster IssuerName des Cert-Manager ClusterIssuer für TLS
API KeyProcessCube® API Key (wird nur für die Secret-Generierung verwendet, nicht gespeichert)

Generierte Dateien

Der Generator erstellt eine YAML-Datei mit allen nötigen Kubernetes-Ressourcen:

  • Namespace
  • Deployment (Cuby Pod)
  • Service
  • Ingress (je nach gewähltem Typ)
  • Secret (API Key)
  • ServiceAccount
  • PersistentVolumeClaim

Der Dateiname variiert je nach Ingress-Typ:

  • cuby-operator_nginx_ingress.yaml (Nginx)
  • cuby-operator.yaml (Traefik)

Anwendung

# Manifest generieren (über Web-Oberfläche) # → Download: cuby-operator.yaml # Manifest anwenden kubectl apply -f cuby-operator.yaml

Kubernetes-Verbindung

Im Cluster (In-Cluster)

Cuby verwendet automatisch den Service Account Token und das CA-Zertifikat:

  • /var/run/secrets/kubernetes.io/serviceaccount/token
  • /var/run/secrets/kubernetes.io/serviceaccount/ca.crt

Außerhalb des Clusters (lokal)

Für lokale Entwicklung oder Tests können Kubernetes-Verbindungsdaten über Umgebungsvariablen konfiguriert werden:

KUBERNETES_SERVICE_HOST=kubernetes.local \ KUBERNETES_SERVICE_PORT=6443 \ CUBY_MODE=operator \ cuby

Weiterführend