IBM Cloud Docs
Statische Routen zu Workerknoten hinzufügen

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

Aktivieren des Add-ons für statische Routen über die Konsole

Gehen Sie wie folgt vor, um die IBM Cloud-Konsole zu verwenden.

  1. Klicken Sie in Ihrem Cluster-Dashboardauf den Namen des Clusters, in dem Sie das Add-on für statische Routen installieren wollen.
  2. Klicken Sie auf der Karte Statische Route auf Installieren.
  3. Klicken Sie erneut auf Installieren.
  4. Ü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.

  1. Aktivieren Sie das static-route-Add-on.

    ibmcloud ks cluster addon enable static-route --cluster <cluster_name_or_ID>
    
  2. 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.

  1. 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 und values für die Bezeichnung ein.
  2. Erstellen Sie die statischen Routen durch Anwenden der YAML-Datei auf Ihren Cluster.

    kubectl apply -f <route_name>.yaml
    
  3. 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