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 auftrue
. - Setzen Sie das Feld
spec.clusterNetwork.flatIPv4
in der Clusterressource auftrue
. - Wenn
spec.clusterNetwork.flatIPv4
auftrue
gesetzt ist, wird das Feldspec.clusterNetwork.pods.cidrBlocks
ignoriert und kann ausgelassen werden. Sie müssen jedoch in der YAML-Datei den AbschnittClusterCIDRConfigs
definieren (pro Knoten, pro Knotenpool und/oder pro Cluster). Weitere Informationen finden Sie in der folgenden Beispieldateicluster.yaml
. - Hängen Sie die Datei
NetworkGatewayGroup
an die Dateicluster.yaml
an und geben Sie die Floating-IP-Adressen an, die für das BGP-Peering verwendet werden sollen. Achten Sie darauf, dass der Namedefault
und der Namespace der Cluster-Namespace ist. - Hängen Sie die Ressourcen
FlatIPMode
undBGPPeer
an die Dateicluster.yaml
an. Der Name der RessourceFlatIPMode
mussdefault
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