- Jelina-Überblick
- JelinaOS
- Anwendungsverwaltung
Containeranwendungen
JelinaOS enthält eine vollständige Containerlaufzeit (Docker). Für die Bereitstellung von Containeranwendungen gilt jedoch ein einheitlicher Grundsatz: Die Verwaltung erfolgt über das Release-System, anstatt Container manuell direkt auf dem Gerät zu starten. Für alle Containeranwendungen in Produktionsumgebungen wird der Release-Ablauf empfohlen. So bleiben Definition, Bereitstellung, Überwachung, Aktualisierung und Rollback durchgehend steuerbar.
Bereitstellungsablauf (empfohlen)
Abschnitt betitelt „Bereitstellungsablauf (empfohlen)“Image erstellen und pushen → Containeranwendung im Release deklarieren → Auf Gerät bereitstellen → Geräteagent ruft Image ab und startet esSchritt 1: Image vorbereiten
Abschnitt betitelt „Schritt 1: Image vorbereiten“Erstellen Sie aus Ihrer Anwendung ein Container-Image und übertragen Sie es in eine Image-Registry, entweder eine private Unternehmensregistry oder eine öffentliche Registry:
docker build -t registry.example.com/myapp:1.0.0 .docker push registry.example.com/myapp:1.0.0Schritt 2: Im Release deklarieren
Abschnitt betitelt „Schritt 2: Im Release deklarieren“Erstellen Sie in JelinaCloud ein Release und fügen Sie die Containeranwendung hinzu:
- Geben Sie Image-Adresse und Versions-Tag an. Eine explizite Version wird empfohlen, um unbeabsichtigte Updates zu vermeiden;
- Konfigurieren Sie Umgebungsvariablen, Portzuordnungen und Daten-Volumes;
- Legen Sie die Neustartrichtlinie (empfohlen:
always) und die Ressourcenlimits fest.
Schritt 3: Bereitstellen
Abschnitt betitelt „Schritt 3: Bereitstellen“Stellen Sie das Release auf der Zielflotte oder dem Zielgerät bereit. Der Geräteagent führt automatisch die folgenden Schritte aus:
- Image herunterladen und Container erstellen;
- Umgebungsvariablen setzen, Ports zuordnen und Daten-Volumes entsprechend der Konfiguration einbinden;
- Container starten und dauerhaft überwachen: automatischer Neustart bei Fehlern und automatische Wiederherstellung nach einem Geräteneustart.
Datenpersistenz
Abschnitt betitelt „Datenpersistenz“Beim Neuerstellen eines Containers geht dessen Dateisystem verloren. Binden Sie Daten, die dauerhaft erhalten bleiben müssen, in die Datenpartition ein:
- Deklarieren Sie im Release ein Daten-Volume für die Anwendung oder binden Sie ein Verzeichnis der Gerätedatenpartition ein;
- Die Daten sind vom Containerlebenszyklus unabhängig und bleiben bei Updates und beim Neuerstellen erhalten.
Überprüfung und Diagnose
Abschnitt betitelt „Überprüfung und Diagnose“Die Docker-Befehle auf dem Gerät dienen der Überprüfung und Diagnose, nicht der Bereitstellungsverwaltung:
docker ps # Containerstatus anzeigendocker logs <Containername> # Containerprotokolle anzeigendocker events # Containerereignisse zur Diagnose verfolgenHinweise für den Produktionsbetrieb
Abschnitt betitelt „Hinweise für den Produktionsbetrieb“- Feste Versionen: Verwenden Sie im Release explizite Image-Versions-Tags;
- Zustandsprüfungen: Konfigurieren Sie Healthchecks für die Dienste, um zusammen mit der Neustartrichtlinie eine automatische Wiederherstellung zu ermöglichen;
- Ressourcenlimits: Begrenzen Sie Arbeitsspeicher und CPU-Nutzung der Container, damit das gesamte Gerät nicht beeinträchtigt wird;
- Private Registry: Verwenden Sie in Unternehmensumgebungen eine private Image-Registry. Die Image-Verteilung übernimmt zentral der Geräteagent;
- Updates und Rollbacks: Führen Sie Updates durch Bereitstellung einer neuen Version und Rollbacks durch erneute Auswahl der bisherigen Version aus. Beides wird aus der Cloud orchestriert.
Häufige Fragen
Abschnitt betitelt „Häufige Fragen“Kann ich Anwendungen direkt auf dem Gerät mit docker run bereitstellen? Technisch ist das möglich, wird jedoch nicht empfohlen: Direkt gestartete Anwendungen gehören nicht zum Release-System und erhalten keine einheitliche Überwachung sowie Update- und Rollback-Funktionen. Verwenden Sie in Produktionsumgebungen die Bereitstellung über Releases.
Was geschieht, wenn ein Container unerwartet beendet wird?
Anwendungen, für die im Release restart: always konfiguriert ist, werden nach einer unerwarteten Beendigung vom Geräteagenten automatisch neu gestartet.
Weiterführende Dokumentation
Abschnitt betitelt „Weiterführende Dokumentation“- Anwendungsverwaltung — Überblick über das Release-System
- Containerorchestrierung (Compose) — Gemeinsame Orchestrierung von Mehrcontainer-Anwendungen
- Anwendungsbereitstellung aus der Cloud und OTA — Release- und Aktualisierungsablauf