In questo documento viene descritto come implementare un modello di rete a modalità piatta con il supporto del protocollo BGP (Border Gateway Protocol). Quando implementi un modello di rete con il supporto BGP, BGP garantisce dinamicamente che i pod in domini L2 diversi possano comunicare tra loro.
Per maggiori informazioni sui modelli di rete in modalità piatta, consulta Modelli di rete in modalità piatta e in isola.
Come implementare una rete in modalità piatta che utilizza BGP
Per implementare un cluster su un modello di rete in modalità piatta con supporto per BGP, apporta le seguenti modifiche al file cluster.yaml
del cluster:
- Impostare il campo
spec.clusterNetwork.advancedNetworking
sutrue
nella risorsa cluster. - Imposta il campo
spec.clusterNetwork.flatIPv4
sutrue
nella risorsa cluster. - Se
spec.clusterNetwork.flatIPv4
è impostato sutrue
, il campospec.clusterNetwork.pods.cidrBlocks
viene ignorato e può essere omesso. Tuttavia, dovrai definire una sezioneClusterCIDRConfigs
nel file yaml (per nodo, per nodo e/o per cluster). Vedi il filecluster.yaml
di esempio di seguito per i dettagli. - Aggiungi una risorsa
NetworkGatewayGroup
al filecluster.yaml
e specifica gli IP mobili da utilizzare per il peering BGP. Assicurati che il nome siadefault
e che lo spazio dei nomi sia il cluster. - Aggiungi risorse
FlatIPMode
eBGPPeer
al filecluster.yaml
. Il nome della risorsaFlatIPMode
deve esseredefault
e tutte le risorse devono trovarsi nello spazio dei nomi del cluster.
Per l'anteprima, sono supportati solo i livelli e le sessioni BGP IPv4. Tuttavia, se il tuo ambiente supporta BGP multiprotocollo(MP-BGP), le route IPv4 e IPv6 possono essere pubblicizzate in queste sessioni IPv4. La configurazione del peer BGP IPv6 non è supportata nella versione 1.11.0 di Cluster Anthos on bare metal.
L'estratto seguente di un file cluster.yaml
mostra come implementare il networking in modalità piatta con il supporto BGP. Tieni presente che gli indirizzi IP visualizzati in questo estratto sono solo esempi e 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