Konfiguration von Cilium BGP für Hybridknoten - Amazon EKS

Unterstützung für die Verbesserung dieser Seite beitragen

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Um zu diesem Benutzerhandbuch beizutragen, wählen Sie den GitHub Link Diese Seite bearbeiten auf, der sich im rechten Bereich jeder Seite befindet.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Konfiguration von Cilium BGP für Hybridknoten

In diesem Thema wird beschrieben, wie Sie Cilium Border Gateway Protocol (BGP) für Amazon EKS Hybrid Nodes konfigurieren. Die BGP-Funktionalität von Cilium heißt Cilium BGP Control Plane und kann verwendet werden, um Pod- und Serviceadressen in Ihrem On-Premises-Netzwerk bekannt zu geben. Alternative Methoden, um Pod-CIDRs in Ihrem On-Premises-Netzwerk routingfähig zu machen, finden Sie unter Routingfähige Fern-Pod-CIDRs.

Cilium BGP konfigurieren

Voraussetzungen

Verfahren

  1. Um BGP mit Cilium zu verwenden und Pod- oder Service-Adressen in Ihrem On-Premises-Netzwerk bekannt zu geben, muss Cilium mit bgpControlPlane.enabled: true installiert sein. Wenn Sie BGP für eine vorhandene Cilium-Bereitstellung aktivieren, müssen Sie den Cilium-Operator neu starten, um die BGP-Konfiguration anzuwenden, falls BGP zuvor nicht aktiviert wurde. Sie können in Ihren Helm-Werten operator.rollOutPods auf true setzen, um den Cilium-Operator als Teil des Helm-Installations-/Upgrade-Prozesses neu zu starten.

    helm upgrade cilium oci://public.ecr.aws/eks/cilium/cilium \ --namespace kube-system \ --reuse-values \ --set operator.rollOutPods=true \ --set bgpControlPlane.enabled=true
  2. Bestätigen Sie, dass der Cilium-Operator und die Agenten neu gestartet wurden und ausgeführt werden.

    kubectl -n kube-system get pods --selector=app.kubernetes.io/part-of=cilium
    NAME READY STATUS RESTARTS AGE cilium-grwlc 1/1 Running 0 4m12s cilium-operator-68f7766967-5nnbl 1/1 Running 0 4m20s cilium-operator-68f7766967-7spfz 1/1 Running 0 4m20s cilium-pnxcv 1/1 Running 0 6m29s cilium-r7qkj 1/1 Running 0 4m12s cilium-wxhfn 1/1 Running 0 4m1s cilium-z7hlb 1/1 Running 0 6m30s
  3. Erstellen Sie eine Datei mit dem Namen cilium-bgp-cluster.yaml mit einer CiliumBGPClusterConfig-Definition. Möglicherweise müssen Sie die folgenden Informationen von Ihrem Netzwerkadministrator einholen.

    • Konfigurieren Sie localASN mit der ASN für die Knoten, auf denen Cilium ausgeführt wird.

    • Konfigurieren Sie peerASN mit der ASN für Ihren On-Premises-Router.

    • Konfigurieren Sie peerAddress mit der On-Premises-Router-IP, mit der jeder Knoten, auf dem Cilium ausgeführt wird, eine Peering-Verbindung herstellt.

      apiVersion: cilium.io/v2alpha1 kind: CiliumBGPClusterConfig metadata: name: cilium-bgp spec: nodeSelector: matchExpressions: - key: eks.amazonaws.com/compute-type operator: In values: - hybrid bgpInstances: - name: "rack0" localASN: NODES_ASN peers: - name: "onprem-router" peerASN: ONPREM_ROUTER_ASN peerAddress: ONPREM_ROUTER_IP peerConfigRef: name: "cilium-peer"
  4. Wenden Sie die Cilium-BGP-Cluster-Konfiguration auf Ihren Cluster an.

    kubectl apply -f cilium-bgp-cluster.yaml
  5. Erstellen Sie eine Datei mit dem Namen cilium-bgp-peer.yaml mit der CiliumBGPPeerConfig-Ressource, die eine BGP-Peer-Konfiguration definiert. Mehrere Peers können dieselbe Konfiguration freigeben und auf die gemeinsame CiliumBGPPeerConfig-Ressource verweisen. Eine vollständige Liste der Konfigurationsoptionen finden Sie in der BGP-Peer-Konfiguration in der Cilium-Dokumentation.

    Die Werte für die folgenden Cilium-Peer-Einstellungen müssen mit denen des On-Premises-Routers übereinstimmen, mit dem Sie das Peering durchführen.

    • Konfigurieren Sie holdTimeSeconds, das festlegt, wie lange ein BGP-Peer auf eine Keepalive- oder Aktualisierungsnachricht wartet, bevor die Sitzung als unterbrochen erklärt wird. Der Standardwert ist 90 Sekunden.

    • Konfigurieren Sie keepAliveTimeSeconds, um festzustellen, ob ein BGP-Peer noch erreichbar ist und die BGP-Sitzung aktiv ist. Standardmäßig ist ein Zeitraum von 30 Sekunden festgelegt.

    • Konfigurieren Sie restartTimeSeconds, das die Zeit bestimmt, nach der die BGP-Steuerebene von Cilium die BGP-Sitzung nach einem Neustart wiederherstellen soll. Standardmäßig sind 120 Sekunden festgelegt.

      apiVersion: cilium.io/v2alpha1 kind: CiliumBGPPeerConfig metadata: name: cilium-peer spec: timers: holdTimeSeconds: 90 keepAliveTimeSeconds: 30 gracefulRestart: enabled: true restartTimeSeconds: 120 families: - afi: ipv4 safi: unicast advertisements: matchLabels: advertise: "bgp"
  6. Wenden Sie die Cilium BGP-Peer-Konfiguration auf Ihren Cluster an.

    kubectl apply -f cilium-bgp-peer.yaml
  7. Erstellen Sie eine Datei mit dem Namen cilium-bgp-advertisement-pods.yaml und einer CiliumBGPAdvertisement-Ressource, um die Pod-CIDRs in Ihrem On-Premises-Netzwerk bekannt zu machen.

    • Die CiliumBGPAdvertisement-Ressource wird verwendet, um Ankündigungstypen und die zugehörigen Attribute zu definieren. Im folgenden Beispiel wird Cilium so konfiguriert, dass nur Pod-CIDRs bekannt gemacht werden. Weitere Informationen zum Konfigurieren von Cilium zum Bekanntgeben von Service-Adressen finden Sie in den Beispielen in Servicetyp LoadBalancer und Cilium-Load-Balancing im Cluster.

    • Jeder Hybridknoten, auf dem der Cilium-Agent ausgeführt wird, ist mit dem Upstream-BGP-fähigen Router verbunden. Jeder Knoten gibt den ihm zugehörigen Pod-CIDR-Bereich bekannt, wenn Ciliums advertisementType wie im folgenden Beispiel auf PodCIDR gesetzt ist. Weitere Informationen finden Sie in der BGP-Anzeigenkonfiguration in der Cilium-Dokumentation.

      apiVersion: cilium.io/v2alpha1 kind: CiliumBGPAdvertisement metadata: name: bgp-advertisement-pods labels: advertise: bgp spec: advertisements: - advertisementType: "PodCIDR"
  8. Wenden Sie die Cilium BGP-Anzeigenkonfiguration auf Ihren Cluster an.

    kubectl apply -f cilium-bgp-advertisement-pods.yaml
  9. Sie können mit dem cilium bgp peers-Befehl überprüfen, ob das BGP-Peering mit der Cilium CLI funktioniert. In der Ausgabe sollten die korrekten Werte für Ihre Umgebung und der Sitzungsstatus established angezeigt werden. Weitere Informationen zur Fehlerbehebung finden Sie im Handbuch zur Fehlerbehebung und zum Betrieb in der Cilium-Dokumentation.

    In den folgenden Beispielen gibt es fünf Hybridknoten, in denen der Cilium-Agent ausgeführt wird, und jeder Knoten gibt den Pod-CIDR-Bereich bekannt, den er besitzt.

    cilium bgp peers
    Node Local AS Peer AS Peer Address Session State Uptime Family Received Advertised mi-026d6a261e355fba7 NODES_ASN ONPREM_ROUTER_ASN ONPREM_ROUTER_IP established 1h18m58s ipv4/unicast 1 2 mi-082f73826a163626e NODES_ASN ONPREM_ROUTER_ASN ONPREM_ROUTER_IP established 1h19m12s ipv4/unicast 1 2 mi-09183e8a3d755abf6 NODES_ASN ONPREM_ROUTER_ASN ONPREM_ROUTER_IP established 1h18m47s ipv4/unicast 1 2 mi-0d78d815980ed202d NODES_ASN ONPREM_ROUTER_ASN ONPREM_ROUTER_IP established 1h19m12s ipv4/unicast 1 2 mi-0daa253999fe92daa NODES_ASN ONPREM_ROUTER_ASN ONPREM_ROUTER_IP established 1h18m58s ipv4/unicast 1 2
    cilium bgp routes
    Node VRouter Prefix NextHop Age Attrs mi-026d6a261e355fba7 NODES_ASN 10.86.2.0/26 0.0.0.0 1h16m46s [{Origin: i} {Nexthop: 0.0.0.0}] mi-082f73826a163626e NODES_ASN 10.86.2.192/26 0.0.0.0 1h16m46s [{Origin: i} {Nexthop: 0.0.0.0}] mi-09183e8a3d755abf6 NODES_ASN 10.86.2.64/26 0.0.0.0 1h16m46s [{Origin: i} {Nexthop: 0.0.0.0}] mi-0d78d815980ed202d NODES_ASN 10.86.2.128/26 0.0.0.0 1h16m46s [{Origin: i} {Nexthop: 0.0.0.0}] mi-0daa253999fe92daa NODES_ASN 10.86.3.0/26 0.0.0.0 1h16m46s [{Origin: i} {Nexthop: 0.0.0.0}]