Service-Status und Lebenszyklus
Ein Service entsteht in Hostly durch ein Service. Hostly lädt ein bereits gepacktes Docker-Image, erstellt die benötigten Kubernetes-Ressourcen und verbindet die Anwendung mit ihrer öffentlichen Service-Domain.
Service als Vorgang
Der vereinfachte Ablauf lautet:
Service-Konfiguration festlegen
↓
Docker-Image laden
↓
Service im Cluster starten
↓
Service öffentlich erreichbar machen
↓
Health Check durchführenZur Konfiguration gehören unter anderem:
- Image und Image-Tag
- Service-Domainfragment
- interner Container-Port
- Environment Variables
- Secrets
- Dateien
- SSL/TLS
- High Availability
- optionales Volume
Neues Service
Ein neues Service ersetzt die vorherige Service-Version. Die alte Version bleibt nicht als direkt auswählbare Revision erhalten.
Ein automatischer Rollback existiert derzeit nicht. Für eine Rückkehr muss das frühere Image, beziehungsweise der frühere Image-Tag erneut deployt werden.
Status
Statusmatrix
| Frage | Läuft | Gestoppt | Pausiert |
|---|---|---|---|
| Ist der Service erreichbar? | Ja, sofern Health Check und Anwendung funktionieren. | Nein | Nein |
| Läuft der Containerprozess? | Ja | Nein | Nein |
| Werden Compute und RAM berechnet? | Ja | Nein | Nein |
| Wird Persistent Storage berechnet? | Ja | Nein; das Volume wird beim Stoppen gelöscht. | Ja |
| Bleibt das Service-Domainfragment reserviert? | Ja | Ja | Ja |
| Bleiben Logs erhalten? | Ja | Nein | Ja |
| Startet der Service automatisch wieder? | Bei einem Ausfall wird er automatisch neu gestartet. | Nein | Nur nach einer systemseitigen Free-Tier-Pause, sobald wieder Ressourcen verfügbar sind. |
| Kann der Nutzer ihn manuell starten? | Nein, da der Service bereits läuft. | Ja | Ja |
Läuft
Der Containerprozess ist aktiv. Ressourcenverbrauch wird ganz normal gemessen, d.h. im Free Tier Compute und tatsächlich genutzter RAM und im Paid Tier zusätzlich noch reservierter persistent Storage und egress traffic.
Hostly startet den Service nach einem Ausfall automatisch neu. Das garantiert allein jedoch nicht die öffentliche Erreichbarkeit; dafür sind Health Check, Portkonfiguration und Anwendung relevant.
Pausiert
Beim Pausieren beendet Hostly den Containerprozess vorübergehend.
Erhalten bleiben:
- Service-Konfiguration
- Secrets und Environment Variables
- Service-Domainfragment
- Logs
- vorhandenes Volume
Compute, RAM und egress traffic werden während der Pause nicht berechnet. Das persistent Volume bleibt bestehen und wird wie bisher anhand seiner reservierten Größe weiter berechnet.
Ein Nutzer kann einen pausierten Service manuell starten. Wurde der Service wegen eines Free-Tier-Limits automatisch pausiert, startet Hostly diesen nach dem Limit-Reset automatisch, sofern wieder ausreichend Ressourcen verfügbar sind.
Gestoppt
Beim Stoppen läuft der Containerprozess nicht mehr. Compute und RAM werden nicht berechnet.
Entfernt werden:
- bisherige Logs
- flüchtige Daten
- ein vorhandenes Volume und dessen Daten
Die Service-Konfiguration und die Reservierung des Service-Domainfragments bleiben erhalten. Der Service kann später wieder manuell unter derselben Service-Domain gestartet werden.
Neustarten
Beim Neustart wird derselbe Container neu gestartet.
| Bestandteil | Verhalten |
|---|---|
| Flüchtige Daten | ❌ Gehen verloren |
| Logs | ❌ Gehen verloren |
| Persistent Storage | ✅ Bleibt erhalten |
| Environment Variables | ✅ Bleiben erhalten |
| Secrets | ✅ Bleiben erhalten |
| Docker-Image | ✅ Wird erneut heruntergeladen. |
Während des Neustarts ist Service kurz nicht erreichbar, bis der Container wieder korrekt hochgefahren wurde.
Service ändern
Eine Änderung übernimmt die aktuelle Service-Konfiguration als Ausgangspunkt. Angepasste Werte werden anschließend durch ein neues Service wirksam.
Dabei stoppt Hostly die vorherige Service-Version und stellt den Service mit der geänderten Konfiguration erneut bereit. Dabei kann es sein, dass der gehostete Service kurzzeitig nicht erreichbar ist.
Änderbar sind alle initialen Konfigurationsparameter, also u.a.:
- Image
- Service-Domainfragment
- Port
- Environment Variables
- Secrets
- Eingebundene Dateien
- Persistent Volumes
- SSL
- High Availability
Ein automatischer Rollback existiert derzeit nicht. Für eine Rückkehr auf eine frühere Konfiguration, muss das Service wieder zurückgeändert werden.
Löschen
Das Löschen ist endgültig und muss bestätigt werden. Achtung: Auch Hostly-Administratoren können das Service anschließend nicht wiederherstellen, sobald die Löschung einmal bestätigt und gestartet wurde.
Gelöscht werden:
- Service und Laufzeitressourcen
- Logs
- Secrets
- Volume und dessen Daten
- Reservierung des Service-Domainfragments
Das Domainfragment wird sofort freigegeben.
Die Abrechnung erfolgt exakt bis zum Zeitpunkt der Löschung. Es entstehen danach keine weiteren Kosten mehr für den Service, wie z.B. reservierten persistent Storage.
Logs im Lebenszyklus
Hostly zeigt stdout und stderr.
Beim Aufruf der Service-Detailseite werden die letzten 50 Zeilen bereitgestellt. Neue Zeilen werden anschließend direkt an den Webclient gestreamt.
| Aktion oder Zustand | Bisherige Logs bleiben erhalten? |
|---|---|
| Läuft | ✅ Ja |
| Pausieren | ✅ Ja |
| Neustarten | ❌ Nein |
| Stoppen | ❌ Nein |
| Löschen | ❌ Nein |
Logs können derzeit nicht durchsucht, gefiltert oder heruntergeladen werden.
Environment Variables und Secrets
Werte können nicht direkt im laufenden Betrieb geändert werden. Eine Änderung erfordert ein neues Service.
Environment Variables sind derzeit nicht auf der normalen Dashboard-Seite sichtbar. Secret-Werte sind nur innerhalb der Service-Konfiguration einsehbar.
Hostly speichert Secrets verschlüsselt in einem Secret-Store und injiziert sie als Kubernetes Secrets entsprechend der Service-Konfiguration.
Leere Werte sind nicht erlaubt. Zusätzliche Namensregeln oder reservierte Variablennamen sind derzeit nicht dokumentiert.
