Statische Routen zu Workerknoten hinzufügen
Sie können statische Routen auf Ihren Workerknoten erstellen, wenn Sie das Add-on für statische Routen für IBM Cloud® Kubernetes Service-Cluster aktivieren.
Informationen zu statischen Routen
Wenn Sie Ihr Clusternetz so konfigurieren, dass es über das private Netz mit anderen Netzen kommunizieren kann, müssen Sie gegebenenfalls angepasste statische Routen auf Ihren Workerknoten hinzufügen. Statische Routen ermöglichen den Workerknoten die erfolgreiche Weiterleitung von Antwortpaketen von Ihrem Cluster über ein VPN oder eine Gateway-Appliance an eine IP-Adresse in einem lokalen Rechenzentrum.
Sie könnten zum Beispiel ein VPN verwenden, um Ihren Cluster über das private Netz an ein lokales Rechenzentrum anzubinden. Außerdem behält Ihre private VPN-Verbindung die Quellen-IP-Adresse bei Anforderungen zwischen dem Cluster und dem Rechenzentrum bei.
Wenn ein lokaler Service eine Anforderung an eine App in Ihrem Cluster sendet, wird vom Workerknoten, auf dem sich Ihr App-Pod befindet, die Antwort im Rahmen RPF-Verfahrens (RPF = Reverse Path Filtering, Filterung des Umkehrpfads) gelöscht. RPF ist ein Feature des Linux-Kernels, das alle Antworten auf IP-Adressen, die nicht in den Routing-Tabellen des Workerknotens aufgeführt sind, verwirft. Die Antwort wird gelöscht, weil die lokale IP-Adresse, die in der Anforderung beibehalten wurde, vom Workerknoten nicht weitergeleitet werden kann.
In diesem Fall können Sie eine statische Route erstellen, sodass die Antwort an die IP-Adresse des VPN-Gateways gesendet wird, wenn eine Quellen-IP-Adresse aus einer Anforderung aus einem Ihrer lokalen Teilnetze stammt. Durch Hinzufügen dieser statischen Route zu den Routing-Tabellen der Workerknoten stellen Sie Folgendes sicher:
- Es werden keine Antwortpakete aufgrund von RPF verworfen, da eine Routing-Regel vorhanden ist, die auf die lokale IP-Adresse verweist.
- Antwortpakete werden erfolgreich zunächst über die IP-Adresse des VPN-Gateways geleitet und dann an Ihre lokale IP-Adresse weitergeleitet.
Das Cluster-Add-On für statische Routen kann nur zur Anwendung und Verwaltung von statischen Routen verwendet werden. Sie sind für die Konfiguration und Verwaltung Ihres eigenen VPN, Ihrer Gateway-Appliance oder IBM Cloud® Direct Link-Verbindung verantwortlich.
Add-on für statische Routen aktivieren
Um die Arbeit mit statischen Routen in IBM Cloud Kubernetes Service aufnehmen zu können, müssen Sie zunächst das Add-on für statische Routen aktivieren.
Vorbereitende Schritte
- Vergewissern Sie sich, dass Ihnen die Berechtigung Administrator für die IAM-Plattformzugriffsrolle für den Cluster in IBM Cloud Kubernetes Service zugewiesen ist.
- Melden Sie sich an Ihrem Konto an. If applicable, target the appropriate resource group. Legen Sie den Kontext für den Cluster fest.
Aktivieren des Add-ons für statische Routen über die Konsole
Gehen Sie wie folgt vor, um die IBM Cloud-Konsole zu verwenden.
- Klicken Sie in Ihrem Cluster-Dashboardauf den Namen des Clusters, in dem Sie das Add-on für statische Routen installieren wollen.
- Klicken Sie auf der Karte Statische Route auf Installieren.
- Klicken Sie erneut auf Installieren.
- Überprüfen Sie auf der Karte Statische Route, ob das Add-on aufgeführt wird.
Aktivieren Sie das statische Routen-Add-on mit der Befehlszeilenschnittstelle
Gehen Sie wie folgt vor, um die Befehlszeilenschnittstelle zu verwenden.
-
Aktivieren Sie das
static-route
-Add-on.ibmcloud ks cluster addon enable static-route --cluster <cluster_name_or_ID>
-
Stellen Sie sicher, dass für das Add-on für statische Routen der Status
Addon Ready
(Add-on bereit) angezeigt wird.ibmcloud ks cluster addon ls --cluster <cluster_name_or_ID>
Beispielausgabe
Name Version Health State Health Status static-route 1.0.0 normal Addon Ready
Statische Routen erstellen
Nachdem Sie das Add-on für statische Routen aktiviert haben, können Sie Ressourcen für angepasste Routen erstellen und diese anwenden.
-
Erstellen Sie eine YAML-Datei für die Ressource einer statischen Route.
apiVersion: static-route.ibm.com/v1 kind: StaticRoute metadata: name: <route_name> spec: subnet: "<subnet_CIDR>" gateway: "<gateway_IP>" selectors: - key: "<label_key>" values: - "<label_value>" operator: In
Beispiel
apiVersion: static-route.ibm.com/v1 kind: StaticRoute metadata: name: mystaticroute spec: subnet: "192.168.0.0/24" gateway: "10.0.0.1" selectors: - key: "kubernetes.io/arch" values: - "amd64" operator: In
subnet
- Geben Sie die CIDR des externen Teilnetzes an, von dem Anforderungen an die Workerknoten gesendet werden, z. B. ein Teilnetz in einem lokalen Netz. Das externe Teilnetz darf nicht in den folgenden reservierten Bereichen liegen. Der Geräteverbindungsbereich
198.18.0.0/15
ist zulässig.10.0.0.0/8
172.16.0.0/16
172.18.0.0/16
172.19.0.0/16
172.20.0.0/16
gateway
- Wenn Ihre Gateway-IP-Adresse in demselben Teilnetz wie Ihre Workerknoten vorhanden ist, geben Sie die IP-Adresse des Gateways an. Wenn die IP-Adresse Ihres Gateways in einem anderen Teilnetz in Ihrem privaten IBM Cloud-Netz vorhanden ist,
schließen Sie dieses Feld nicht ein. In diesem Fall senden die Workerknoten Antworten an den Back-End-Router des privaten Netzes und der Router sendet die Antwort an das Gateway in dem anderen Teilnetz. Wenn die statische Route erstellt
wird, wird die IP-Adresse des Backend-Routers im Bereich
10.0.0.0/8
automatisch als Standardgateway zugewiesen. selectors
- Damit die statische Route auf der Grundlage von Bezeichnungen für Workerknoten nur auf bestimmten Workerknoten erstellt wird, binden Sie die Angaben
key
undvalues
für die Bezeichnung ein.
-
Erstellen Sie die statischen Routen durch Anwenden der YAML-Datei auf Ihren Cluster.
kubectl apply -f <route_name>.yaml
-
Prüfen Sie, ob die statische Route erstellt wurde. Überprüfen Sie in der Ausgabe den
node_status
für jeden Workerknoten, an dem Sie die statische Route erstellen.kubectl get staticroute <route_name> -o yaml
Beispielausgabe
apiVersion: static-route.ibm.com/v1 kind: StaticRoute metadata: annotations: kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"static-route.ibm.com/v1","kind":"StaticRoute","metadata":{"annotations":{},"name":"mystaticroute"},"spec":{"selectors":[{"key":"kubernetes.io/arch","operator":"In","values":["amd64"]}],"subnet":"10.94.227.46/24"}} creationTimestamp: "2020-05-20T16:43:12Z" finalizers: - finalizer.static-route.ibm.com generation: 1 name: mystaticroute resourceVersion: "3753886" selfLink: /apis/static-route.ibm.com/v1/staticroutes/mystaticroute uid: f284359f-9d13-4e27-9d3a-8fb38cbc7a5c spec: selectors: - key: kubernetes.io/arch operator: In values: - amd64 subnet: 10.94.227.46/24 status: nodeStatus: - error: "" hostname: 10.94.227.19 state: gateway: 10.94.227.1 selectors: - key: kubernetes.io/arch operator: In values: - amd64 subnet: 10.94.227.46/24 - error: "" hostname: 10.94.227.22 state: gateway: 10.94.227.1 selectors: - key: kubernetes.io/arch operator: In values: - amd64 subnet: 10.94.227.46/24