Ce document explique comment mettre en œuvre un modèle de réseau en mode plat compatible avec le protocole BGP (Border Gateway Protocol). Lorsque vous mettez en œuvre un modèle de réseau compatible avec BGP, BGP garantit de manière dynamique que les pods de différents domaines L2 peuvent communiquer entre eux.
Pour en savoir plus sur les modèles de réseau en mode plat, consultez la section Modèles réseau en mode plat ou en mode île.
Comment mettre en œuvre un réseau en mode plat utilisant BGP
Pour mettre en œuvre un cluster sur un modèle de réseau en mode plat compatible avec BGP, apportez les modifications suivantes au fichier cluster.yaml
du cluster :
- Définissez le champ
spec.clusterNetwork.advancedNetworking
surtrue
dans la ressource de cluster. - Définissez le champ
spec.clusterNetwork.flatIPv4
surtrue
dans la ressource de cluster. - Lorsque
spec.clusterNetwork.flatIPv4
est défini surtrue
, le champspec.clusterNetwork.pods.cidrBlocks
est ignoré et peut être omis. Cependant, vous devez définir une sectionClusterCIDRConfigs
dans le fichier yaml (par nœud, par pool de nœuds et/ou par cluster). Consultez l'exemple de fichiercluster.yaml
ci-dessous pour plus de détails. - Ajoutez une ressource
NetworkGatewayGroup
au fichiercluster.yaml
et spécifiez les adresses IP flottantes à utiliser pour l'appairage BGP. Assurez-vous que le nom estdefault
et que l'espace de noms est bien l'espace de noms du cluster. - Ajoutez les ressources
FlatIPMode
etBGPPeer
au fichiercluster.yaml
. Le nom de la ressourceFlatIPMode
doit êtredefault
et toutes les ressources doivent se trouver dans l'espace de noms du cluster.
Pour la version bêta, seuls les pairs et les sessions BGP IPv4 sont compatibles. Toutefois, si votre environnement est compatible avec le BGP multiprotocole (MP-BGP), les routes IPv4 et IPv6 peuvent être annoncées sur ces sessions IPv4. La configuration du pair BGP IPv6 n'est pas compatible avec la version 1.11.0 des clusters Anthos sur solution Bare Metal.
L'extrait suivant d'un fichier cluster.yaml
montre comment mettre en œuvre un réseau en mode plat avec compatibilité BGP. Notez que les adresses IP qui figurent dans cet extrait ne sont que des exemples et que vous devrez les remplacer par vos propres adresses IP :
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