Netzwerkmodell im flachen Modus mit BGP-Unterstützung implementieren

In diesem Dokument wird beschrieben, wie Sie ein flaches Netzwerkmodell mit Unterstützung für das Border Gateway Protocol (BGP) implementieren. Wenn Sie ein Netzwerkmodell mit BGP-Unterstützung implementieren, gewährleistet BGP dynamisch, dass Pods in verschiedenen L2-Domains miteinander kommunizieren können.

Weitere Informationen zu Netzwerkmodellen im flachen Modus finden Sie unter Netzwerkmodelle im flachen Modus und im Inselmodus.

Netzwerk im flachen Modus implementieren, das BGP verwendet

Nehmen Sie die folgenden Änderungen an der cluster.yaml-Datei des Clusters vor, um einen Cluster in einem Netzwerkmodell mit flachem Modus und BGP-Unterstützung zu implementieren.

  • Setzen Sie das Feld spec.clusterNetwork.advancedNetworking in der Clusterressource auf true.
  • Setzen Sie das Feld spec.clusterNetwork.flatIPv4 in der Clusterressource auf true.
  • Wenn spec.clusterNetwork.flatIPv4 auf true gesetzt ist, wird das Feld spec.clusterNetwork.pods.cidrBlocks ignoriert und kann ausgelassen werden. Sie müssen jedoch in der YAML-Datei den Abschnitt ClusterCIDRConfigs definieren (pro Knoten, pro Knotenpool und/oder pro Cluster). Weitere Informationen finden Sie in der folgenden Beispieldatei cluster.yaml.
  • Hängen Sie die Datei NetworkGatewayGroup an die Datei cluster.yaml an und geben Sie die Floating-IP-Adressen an, die für das BGP-Peering verwendet werden sollen. Achten Sie darauf, dass der Name default und der Namespace der Cluster-Namespace ist.
  • Hängen Sie die Ressourcen FlatIPMode und BGPPeer an die Datei cluster.yaml an. Der Name der Ressource FlatIPMode muss default lauten, und alle Ressourcen müssen sich im Cluster-Namespace befinden.

In der Vorschau werden nur IPv4-BGP-Peers und -Sitzungen unterstützt. Wenn Ihre Umgebung jedoch Multiprotokoll-BGP-(MP-BGP) unterstützt, können IPv4- und IPv6-Routen über diese IPv4-Sitzungen beworben werden. Die IPv6-BGP-Peer-Konfiguration wird nicht unterstützt.

Der folgende Auszug einer cluster.yaml-Datei zeigt, wie ein Netzwerk im Flat-Modus mit BGP-Unterstützung implementiert wird. Die in diesem Auszug angezeigten IP-Adressen sind nur Beispiele und müssen durch Ihre eigenen IP-Adressen ersetzt werden:


apiVersion: baremetal.cluster.gke.io/v1
kind: Cluster
metadata:
  name: bm
  namespace: cluster-bm
spec:

...

  clusterNetwork:
    advancedNetworking: true
    flatIPv4: true

  ... (other cluster config omitted)

apiVersion: networking.gke.io/v1
kind: NetworkGatewayGroup
metadata:
  name: default
  namespace: cluster-bm
spec:
  floatingIPs:
  - 10.0.1.100
  - 10.0.2.100

....

apiVersion: baremetal.cluster.gke.io/v1alpha1
kind: FlatIPMode
metadata:
  name: default
  namespace: cluster-bm
spec:
  enableBGPIPv4: true
  enableBGPIPv6: false
  peerSelector:
    flatip-peer: "true"

....

apiVersion: networking.gke.io/v1
kind: BGPPeer
metadata:
  name: bgppeer1
  namespace: cluster-bm
  labels:
    flatip-peer: "true"
spec:
  localASN: 65001
  peerASN: 65000
  peerIP: 10.0.1.254
  sessions: 2

....

apiVersion: networking.gke.io/v1
kind: BGPPeer
metadata:
  name: bgppeer2
  namespace: cluster-bm
  labels:
    flatip-peer: "true"
spec:
  localASN: 65001
  peerASN: 65000
  peerIP: 10.0.2.254
  sessions: 2

....

apiVersion: baremetal.cluster.gke.io/v1alpha1
kind: ClusterCIDRConfig
metadata:
  name: cluster-wide-1
  namespace: cluster-bm
spec:
  ipv4:
    cidr: "192.168.0.0/16"
    perNodeMaskSize: 24