Zum Hauptinhalt springen
Version: 1.89.x (Q2 26)

Managed Containers

Teil von Runtimes

Dies ist eine detaillierte Anleitung für Managed Containers. Für einen Überblick über alle Runtime-Typen und wie man zwischen ihnen wählt, siehe Runtimes Übersicht. Um die Unterschiede zwischen Reactives und Managed Containers zu verstehen, siehe auch Codesphere Reactives.

Managed Containers ermöglichen es, eigene OCI-Images in Codesphere einzubringen und dabei die Orchestrierungs-, Netzwerk- und Monitoring-Funktionen der Plattform zu nutzen. Dieser Runtime-Typ verwendet dieselbe zugrunde liegende Infrastruktur wie Codesphere Reactives, erlaubt aber die Definition eigener Images und das Vorbacken von Abhängigkeiten über OCI-Images.

Überblick

Managed Containers schlagen eine Brücke zwischen der Einfachheit von Codesphere Reactives und der Flexibilität eigener Container-Images:

FunktionCodesphere ReactivesManaged Containers
Basis-ImageGemeinsames Codesphere Ubuntu (anpassbar für Private Cloud)Eigenes OCI-Image
StartzeitMillisekundenSekunden (abhängig von der Image-Größe)
AbhängigkeitenLokal (npm-Pakete, Python-Pakete usw.) oder NixVorgebacken im OCI-Image
OS-DistributionUbuntu oder vom Organisations-Admin festgelegtBeliebig (Alpine, Debian usw.)
Image RegistryNicht zutreffendDocker Hub, ECR, private Registries
OrchestrierungVollständige PlattformfunktionenVollständige Plattformfunktionen
Filesystem-ZugriffAnpassbares gemeinsames Netzwerk-DateisystemAnpassbares gemeinsames Netzwerk-Dateisystem
Off-when-unusedJaJa
Skalierung & Load BalancingJaJa
PlattformintegrationIntegriertZur Laufzeit

Architektur

Managed Containers nutzen dieselbe Orchestrierungsplattform wie Reactives, mit dem wesentlichen Unterschied bei der Quelle des Container-Images:

Managed Container Architektur

Entsprechende barrierefreie Textbeschreibung

Wichtige Komponenten

1. Eigenes Container-Image

  • Definition eines eigenen Basis-Images über ein Dockerfile
  • Abrufbar von Docker Hub, ECR, GCR oder privaten Registries
  • Vorbacken aller Systemabhängigkeiten und Pakete
  • Vollständige Kontrolle über OS-Distribution und Version

2. Plattform-Orchestrierung

  • Dieselbe Kubernetes-basierte Orchestrierung wie bei Reactives
  • Health-Monitoring, Load Balancing und Auto-Scaling
  • Off-when-unused-Funktionen für Ressourceneffizienz
  • Codesphere-Agent zur Laufzeit integriert für Plattformfunktionen

3. Gemeinsames Netzwerk-Dateisystem

  • Identischer Filesystem-Zugriff wie bei Reactives
  • Beliebige Dateien oder Verzeichnisse an beliebige Ziele im Container mounten
  • Standard-Mount unter /home/user/app für persistente Speicherung
  • Dieselben Best Practices gelten (Schreiben ins app-Verzeichnis, gleichzeitige Schreibzugriffe vermeiden)

4. Image Pull & Start

  • Container-Images werden beim ersten Start aus der Registry gezogen
  • Nachfolgende Starts können gecachte Images verwenden (abhängig vom Cluster-Zustand)
  • Startzeit typischerweise im Sekundenbereich statt Millisekunden bei Reactives
  • Trade-off für vollständige Image-Anpassung

Wann Managed Containers verwenden

Managed Containers eignen sich ideal für:

  • Vorhandene OCI-Images/Dockerfiles – Wiederverwendung bestehender Container-Definitionen
  • Spezifische Anforderungen an das Basis-OS – Alpine, Debian, benutzerdefinierte Distributionen
  • Komplexe Abhängigkeiten – Systempakete, die am besten über ein Dockerfile verwaltet werden
  • Open-Source-Projekte – Bereits containerisierte Anwendungen
  • Registry-basierte Workflows – CI/CD, das Images in Registries pusht

Codesphere Reactives sind stattdessen sinnvoll, wenn:

  • kein spezifisches Basis-Image benötigt wird
  • eine schnellere Startzeit entscheidend ist
  • eine Installation von Abhängigkeiten zur Laufzeit über Nix bevorzugt wird
  • ein neues Greenfield-Projekt gestartet wird

Gemeinsamkeiten mit Codesphere Reactives

Beide Runtime-Typen teilen sich dieselben zugrunde liegenden Plattformfunktionen:

FunktionBeide Runtimes
Filesystem-ZugriffGemeinsames Netzwerk-Dateisystem unter /home/user/app
Off-when-unusedAutomatische Freigabe von Ressourcen während Leerlaufzeiten
SkalierungHorizontal (Replicas) und vertikal (Plans)
Load BalancingAutomatisch über den Landscape Router
Health-MonitoringKonfigurierbare Health-Checks und Auto-Restart
Privates NetworkingSichere interne Service-Kommunikation
Secret ManagementVault-Integration für sensible Daten
MonitoringLogs, Metriken und Request-Tracing
PlattformintegrationCodesphere-Agent für Plattformfunktionen

Konfiguration & Lebenszyklus

Managed Containers werden über die Datei ci.yml im Repository konfiguriert. Umfassende Anleitungen zur Konfiguration und Verwaltung von Managed Containers finden sich hier: