Festlegen, wer die API erreicht
Die Kubernetes-API eines Clusters lauscht auf Port 6443, und die Firewall des Clusters in deinem Hetzner-Projekt entscheidet, wer sie erreicht. Diese Seite beschränkt sie auf die Adressen, von denen aus du und deine Werkzeuge arbeiten, damit die API nicht für das ganze Internet offen steht.
Was die Firewall hereinlässt
Abschnitt betitelt „Was die Firewall hereinlässt“| Port | Von | Für |
|---|---|---|
| TCP 6443 | den Bereichen, die du festlegst (voreingestellt: alle, 0.0.0.0/0 und ::/0) | die Kubernetes-API |
| TCP 80 und 443 | allen | deine Apps, über den Ingress auf dem Node |
| ICMP | allen | Ping |
Sonst kommt nichts herein: SSH (Port 22) und die Ports, die k3s innerhalb des Clusters nutzt, bleiben zu. Die Firewall filtert nur eingehenden Verkehr; die Verbindungen, die der Node selbst nach außen aufbaut, etwa die von pbx-agent zum Portal, betrifft sie nicht.
Was du brauchst
Abschnitt betitelt „Was du brauchst“- Du bist Team-Admin. Mitglieder sehen die Bereiche, können sie aber nicht ändern.
- Die Adressen, von denen aus du arbeitest, als IPv4- oder IPv6-Bereiche in CIDR-Form, etwa
203.0.113.7/32oder2001:db8:1234::/48. Nimm jeden Ort auf, von dem auskubectlläuft: dein Büro, deine CI-Runner, den Rechner, auf dem dein Agent läuft.
Die Bereiche im Portal ändern
Abschnitt betitelt „Die Bereiche im Portal ändern“- Öffne auf der Seite des Clusters Settings.
- Bearbeite unter Kubernetes API access das Feld Who may reach the Kubernetes API (port 6443): ein Bereich pro Zeile, IPv4 oder IPv6. Eine Adresse ohne Präfixlänge wird zu einer einzelnen Adresse (
203.0.113.7wird203.0.113.7/32). - Wähle Save.
Das Portal ändert zuerst die Firewall des Clusters in deinem Projekt, mit allen Regeln auf einmal, und speichert die Bereiche erst, wenn Hetzner sie übernommen hat. Die Seite sagt dann „Saved. The cluster’s firewall lets only these ranges reach the Kubernetes API.” Antwortet Hetzner mit einem Fehler, bleiben Firewall und gespeicherte Bereiche, wie sie waren, und die Seite zeigt den Fehler.
Mindestens ein Bereich muss bleiben; 0.0.0.0/0 und ::/0 zusammen bedeuten alle. Die ersten Bereiche legst du fest, wenn du den Cluster anlegst.
Wenn du dich ausgesperrt hast
Abschnitt betitelt „Wenn du dich ausgesperrt hast“Das Portal liegt nicht hinter der Firewall des Clusters. Ändert sich deine Adresse und kubectl verbindet sich nicht mehr, öffne Settings von überall aus und trag die neue Adresse ein. Kubeconfigs erzeugt pbx-agent auf dem Node, und der ruft das Portal von sich aus an; eine Kubeconfig bekommst du also weiterhin, du kannst sie nur außerhalb der Bereiche nicht benutzen.
Die Firewall in der Hetzner-Konsole ändern
Abschnitt betitelt „Die Firewall in der Hetzner-Konsole ändern“Die Firewall ist eine Ressource in deinem Projekt, mit dem Namen pbx-<DNS-Label>-<acht Zeichen der ID des Clusters> und dem Label pbx-cluster=<die ID des Clusters>. Ihre Regeln kannst du in der Hetzner-Konsole unter Firewalls bearbeiten.
Das Portal liest diese Regeln nicht zurück. Es schreibt den ganzen Regelsatz neu, sobald ein Team-Admin die Bereiche auf Settings speichert, und wenn ein fehlgeschlagenes Anlegen ab seinem Firewall-Schritt oder einem früheren wiederholt wird; eine Regel, die du in der Hetzner-Konsole hinzugefügt hast, ist danach weg. Darum:
- Wer Port 6443 erreicht, änderst du über Settings, solange das Portal den Cluster verwaltet.
- Für alles andere, etwa Port 22, legst du eine eigene Firewall an und wendest sie auf den Server an. Hetzner wendet die Regeln aller Firewalls eines Servers gemeinsam an. Root auf dem Server bekommen macht das für SSH.
Nachdem du den Cluster abgekoppelt hast, ändert das Portal seine Firewall nicht mehr, und die Hetzner-Konsole ist der Ort, sie zu bearbeiten.