Zum Inhalt springen

DNS-Namen für deine Cluster

Ein Cluster braucht Namen: einen für seine Kubernetes-API, einen oder mehrere für die Apps hinter seinem Ingress, und einen TXT-Eintrag, wann immer Let’s Encrypt für ein Zertifikat eine DNS-01-Challenge prüft. Wenn du keine eigene Domain hast oder sie noch nicht nutzen willst, gibt PaaSbox deinem Team eine: <team>.paasbox.app, kostenlos, mit den Einträgen darunter, die ein Cluster braucht.

Gebaut Die API läuft unter https://dns.paasbox.com/v1. Der Dienst öffnet mit der ersten Veröffentlichung der Komponenten: Bis dahin werden keine Team-Tokens ausgegeben.

  • Einen Namen für dein Team. <team> ist der Name deines Teams als DNS-Label: Kleinbuchstaben, Ziffern und Bindestriche, höchstens 32 Zeichen. Alles darunter darfst du schreiben, zum Beispiel api.prod.acme.paasbox.app oder *.apps.acme.paasbox.app.
  • Die Einträge, die ein Cluster braucht: A, AAAA, CNAME und TXT. TXT braucht die DNS-01-Challenge von Let’s Encrypt, damit funktionieren auch Wildcard-Zertifikate.
  • Eine API, die Hetzners Clients sprechen. Sie beantwortet die Zonen- und Record-Set-Anfragen der Hetzner-Cloud-API, mit Hetzners eigenen Anfrage- und Antwortformaten. Das hcloud-CLI und Hetzners Go-Client funktionieren unverändert damit, ebenso der cert-manager-Webhook und die Gardener-DNS-Erweiterung unter den offenen Komponenten; du stellst zwei Dinge ein, den Endpunkt und das Token.
  • Ein Team-Token. Es beginnt mit pbdns_, wird einmal angezeigt, trägt den Scope dns und sonst nichts, und gehört dem Team, nicht einer Person: Ein Cluster behält sein DNS, wenn die Person geht, die das Token angelegt hat. Ein Team kann bis zu fünf aktive Tokens haben und jedes davon widerrufen.
  • Ein Audit-Log. Jeder Schreibzugriff wird mit Team, Token, Name, Eintragstyp und Antwort festgehalten, auch die, die Hetzner abgelehnt hat.

Richte einen DNS-Client für Hetzner auf den Endpunkt, mit deinem Team-Token:

Terminal-Fenster
export HCLOUD_ENDPOINT=https://dns.paasbox.com/v1
export HCLOUD_TOKEN=pbdns_… # dein Team-Token
# api.prod.acme.paasbox.app → 203.0.113.7
hcloud zone rrset set-records --record 203.0.113.7 paasbox.app api.prod.acme A

Die Zone ist immer paasbox.app, und Eintragsnamen sind relativ zu ihr: api.prod.acme ist api.prod.acme.paasbox.app. Die DNS-API listet jeden Endpunkt, die Grenzen und die Fehler.

Die Anmeldung. Gebaut Das paasbox-CLI holt sich ein Token selbst: Es zeigt einen kurzen Code, du bestätigst ihn im Browser nach einer Anmeldung im PaaSbox-Portal, und das Token geht an das CLI, ohne dazwischen irgendwo angezeigt zu werden. Es ist der OAuth-Device-Flow, den gh auth login nutzt, darum funktioniert er auch über SSH und auf einem Rechner ohne Browser. Er öffnet mit dem Dienst.

Das Token darf nur unterhalb des Namens deines Teams schreiben. Alles andere wird abgelehnt:

  • NS-Einträge, überall: Ein Name unter deinem kann nicht an einen anderen Server delegiert werden.
  • Die Zonenspitze und die Namen anderer Teams. Das Lesen eines fremden Namens antwortet mit 404, nicht 403, damit sich die Zone über die API nicht auflisten lässt.
  • Reservierte Namen, unter denen PaaSbox selbst antwortet, etwa www, mail und api: Kein Team bekommt einen davon als Namen.
Einträge pro Team200, gezählt über alle deine Record-Sets
Einträge pro Record-Set50
Aktive Tokens pro Team5
AnfragenIn Arbeit 120 pro Minute und Token, 600 pro Minute und Team, und 300 pro Minute und Adresse, bevor ein Token geprüft wird; über einer Grenze Hetzners eigene Antwort 429 rate_limit_exceeded

Gebaut im Labor. Jeder Cluster von PaaSbox Clusters bekommt einen Namen für seine Kubernetes-API, <cluster>.<team>.k3s.paasbox.app, der auf die IPv4-Adresse des Servers zeigt. Das Portal schreibt ihn selbst; dafür wird kein Team-Token gebraucht, und das Label k3s ist dafür reserviert. Löschst du den Cluster, wird der Name entfernt. Nach dem Abkoppeln bleibt der Name 30 Tage bestehen, damit du den Cluster auf einen eigenen Namen umziehen kannst. Im Laborlauf vom 2026-10-10 hat das Portal diese Namen in einer Testzone geschrieben und entfernt; unter paasbox.app kommen sie mit PaaSbox Clusters.

Der k3s-Name ist nur für die Kubernetes-API. Eine App bekommt einen eigenen Namen, der auf denselben Server zeigt: in einer Domain, die dir gehört, oder unter <team>.paasbox.app, sobald dieser Dienst öffnet. Deine erste App deployen zeigt die Schritte.

In Arbeit Für eine Demo oder einen Kurs, bevor jemand DNS eingerichtet hat: ein zufälliger Name unter demo.paasbox.app, etwa k3x9q7m2p4ta.demo.paasbox.app, und ein Token, das nur darunter schreiben darf. Eine Demo lebt 4 Stunden, wenn du nicht länger verlangst, höchstens 7 Tage ab ihrer Erstellung, mit bis zu 20 Einträgen. Wird sie gelöscht oder läuft sie ab, werden ihre Einträge gelöscht, und ihr Token funktioniert nicht mehr. Eine Trainerin oder ein Trainer kann einem Kursraum statt Tokens einen Kurscode geben. Gebaut und getestet auf einem Branch; nicht veröffentlicht.

Die Namen kommen ohne Verfügbarkeitszusage. Für alles, was weiterlaufen muss, nimm eine eigene Zone bei Hetzner: Dieselben Clients schreiben mit deinem eigenen Hetzner-Token und Hetzners eigenem Endpunkt hinein, ein Umzug ist also eine Änderung von Endpunkt, Token und Zonenname.