Zum Inhalt springen

PaaSbox verlassen

Ein Managed Service, den man nicht verlassen kann, ist ein Risiko – so gut er auch sein mag. PaaSbox ist so gebaut, dass das Verlassen keine Erlaubnis von uns braucht, und die einzelnen Teile sind geprobt, nicht versprochen.

  • Deine Nodes, Load Balancer, Volumes und dein Gateway liegen in deinem Hetzner-Projekt. Nichts, was dir gehört, läuft in unserem.
  • Adoptierte Server werden nie gelöscht. Die Komponente, die sie verwaltet, hat keinen Löschpfad.
  • Deinen Cluster als Gardener-YAML, jederzeit aus der Konsole oder über die API exportierbar – die exakte Definition, die die Plattform anwendet, um Secrets bereinigt. Siehe den Export.
  • Den Escrow. Die etcd-Snapshots deines Clusters – jedes Fünf-Minuten-Delta und jeder Tages-Voll-Snapshot – und die Schlüssel des Clusters (seine Certificate Authority, der Service-Account-Signierschlüssel, der etcd-Verschlüsselungsschlüssel und der SSH-Schlüssel) werden in einen Bucket in deinem eigenen Hetzner-Projekt kopiert, verschlüsselt mit einem Schlüssel, den nur du hast. Die Kopie läuft kontinuierlich; die Konsole zeigt das Alter des jüngsten Escrow-Snapshots, und ein Befehl im Exit-Kit prüft nach, dass sich der Escrow entschlüsseln lässt.
  • Deine eigene API-Domain, wenn du eine möchtest. Der API-Endpunkt eines Clusters kann unter einer Domain liegen, die dir gehört, verwaltet über dein eigenes Hetzner-DNS-Token. Dann liegt der eine Hebel, den eine Übernahme braucht – das Umbiegen des Namens – in deiner Hand.

Das Exit-Kit ist ein Open-Source-Projekt. Es bringt einen Cluster vom Escrow zu einer Control Plane, die du selbst betreibst – während die Workloads weiter ausliefern:

  1. Einen Garden und einen Seed in deinem Projekt bootstrappen. Ein Server für einen Test-Cluster, drei für die hochverfügbare Control Plane eines Produktions-Clusters. Es ist dasselbe Skript, mit dem PaaSbox seine eigene Plattform gebaut hat.
  2. Die Control Plane aus dem Escrow wiederherstellen. Das Kit entschlüsselt die Schlüssel und den jüngsten Snapshot und bringt die Control Plane deines Clusters auf deinem Seed hoch – mit derselben Certificate Authority, sodass jedes bestehende Credential weiter funktioniert.
  3. Den API-Namen umbiegen. Mit deiner eigenen Domain machst du das selbst. Mit einer PaaSbox-Domain machen wir es auf Anfrage, und bei einer Abwicklung übergeben wir jeden Namen.
  4. Zusehen, wie die Nodes sich neu verbinden. Die Nodes haben nie aufgehört. Sie finden die Control Plane unter ihrem Namen, der Tunnel kommt hoch, und der Cluster gehört dir – inklusive On-Demand-Pools, adoptierter Server und NAT-Gateway, denn der Pool-Stack und der Provider sind im Kit enthalten.

Im Drill gemessen: etwa 30 bis 40 Minuten vom Start des Kits bis zum rekonziliierten Cluster, ohne dass ein Pod neu startet. Der Drill läuft jedes Quartal gegen eine Kopie einer echten Cluster-Konstellation, und sein Protokoll wird mit den monatlichen Zahlen veröffentlicht.

Du musst kein Gardener betreiben, um zu gehen. Der Weg zum Neuaufbau:

  • k3s oder kubeadm auf neuen Servern hochziehen – oder auf deinen adoptierten Servern, nachdem du sie von Hand neu aufgesetzt hast;
  • deine Hetzner-Volumes als statische PersistentVolumes wieder einhängen – sie wurden nie angerührt;
  • deine Anwendungen aus deinem eigenen Git-Repository anwenden. Jeder Cluster kann genau dafür sein eigenes Flux betreiben, und genau deshalb empfehlen wir es ab Tag eins.

Was du auf diesem Weg verlierst, ist der Live-Zustand des Clusters zwischen deinem letzten Git-Commit und dem Umschalten – und die betriebene Control Plane. Was du behältst, ist alles, was Geld kostet: die Server, ihre Preise, die Daten.

Falls PaaSbox je aufhört:

  • Sechs Monate Vorlauf, schriftlich, an jeden Kunden, bevor irgendein Cluster betroffen ist.
  • Kostenlose Migrationshilfe in dieser Zeit – das Exit-Kit gemeinsam mit dir ausgeführt oder der Weg zum Neuaufbau, wie du magst.
  • Eingefrorene Preise für die Dauer der Vorlaufzeit.
  • Alles bleibt öffentlich. Das Exit-Kit, die Docs, der Hetzner-Stack unter Apache-2.0 und jede Komponente, die adoptierte Server brauchen, um als Nodes weiterzulaufen.

Diese Zusage ist Teil der Vertragsbedingungen, nicht eines Blogposts.

Einen Cluster aus der Konsole zu löschen baut seine Control Plane ab und – bei On-Demand-Pools – seine Nodes; die Gebühr pro Cluster stoppt, anteilig abgerechnet. Adoptierte Server kehren mit ihrem Preis in deine Flotte zurück. Volumes gehören dir und bleiben, bis du sie löschst. Der Escrow gehört ebenfalls dir: Der Bucket und sein Inhalt bleiben in deinem Projekt – ein gelöschter Cluster lässt sich also mit dem Kit noch aus seinem letzten Snapshot wieder aufbauen.