Implementare il modello di rete in modalità piatta con il supporto BGP

Questo documento descrive come implementare un modello di rete in modalità piatta con il supporto del BGP (Border Gateway Protocol). Quando implementi un modello di rete che supporta BGP, BGP assicura in modo dinamico che i pod in domini L2 diversi possano comunicare tra loro.

Per ulteriori informazioni sui modelli di rete in modalità a schermo piatto, consulta la pagina relativa ai modelli di rete in modalità piatta e insulare.

Come implementare una rete in modalità piatta che utilizza BGP

Per implementare un cluster su un modello di rete in modalità piatta con supporto BGP, apporta le seguenti modifiche al file cluster.yaml del cluster:

  • Imposta il campo spec.clusterNetwork.advancedNetworking su true nella risorsa cluster.
  • Imposta il campo spec.clusterNetwork.flatIPv4 su true nella risorsa del cluster.
  • Se spec.clusterNetwork.flatIPv4 è impostato su true, il campo spec.clusterNetwork.pods.cidrBlocks viene ignorato e può essere omesso. Tuttavia, dovrai definire una sezione ClusterCIDRConfigs nel file yaml (per-node, per-nodepool e/o per cluster). Per maggiori dettagli, vedi il file di esempio cluster.yaml di seguito.
  • Aggiungi una risorsa NetworkGatewayGroup al file cluster.yaml e specifica gli IP floating da utilizzare per il peering BGP. Assicurati che il nome sia default e che lo spazio dei nomi sia il cluster.
  • Aggiungi risorse FlatIPMode e BGPPeer al file cluster.yaml. Il nome della risorsa FlatIPMode deve essere default e tutte le risorse devono essere nello spazio dei nomi del cluster.

Per l'anteprima, sono supportati solo i peer e le sessioni BGP IPv4. Tuttavia, se il tuo ambiente supporta BGP multiprotocollo (MP-BGP), le route IPv4 e IPv6 possono essere pubblicizzate su queste sessioni IPv4. La configurazione del peer BGP IPv6 non è supportata nella versione 1.11.0 dei cluster Anthos su Bare Metal.

Il seguente estratto di un file cluster.yaml mostra come implementare una rete in modalità piatta con il supporto BGP. Tieni presente che gli indirizzi IP visualizzati in questo estratto sono solo esempi. Dovrai sostituirli con i tuoi indirizzi 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