Mise en œuvre d'un modèle de réseau en mode plat avec compatibilité BGP

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 sur true dans la ressource de cluster.
  • Définissez le champ spec.clusterNetwork.flatIPv4 sur true dans la ressource de cluster.
  • Lorsque spec.clusterNetwork.flatIPv4 est défini sur true, le champ spec.clusterNetwork.pods.cidrBlocks est ignoré et peut être omis. Cependant, vous devez définir une section ClusterCIDRConfigs dans le fichier yaml (par nœud, par pool de nœuds et/ou par cluster). Consultez l'exemple de fichier cluster.yaml ci-dessous pour plus de détails.
  • Ajoutez une ressource NetworkGatewayGroup au fichier cluster.yaml et spécifiez les adresses IP flottantes à utiliser pour l'appairage BGP. Assurez-vous que le nom est default et que l'espace de noms est bien l'espace de noms du cluster.
  • Ajoutez les ressources FlatIPMode et BGPPeer au fichier cluster.yaml. Le nom de la ressource FlatIPMode doit être default 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