Neste documento, descrevemos como implementar um modelo de rede no modo plano com suporte do Border Gateway Protocol (BGP). Quando você implementa um modelo de rede com o suporte do BGP, o BGP garante dinamicamente que os pods em diferentes domínios L2 possam se comunicar uns com os outros.
Para mais informações sobre modelos de rede no modo plano, consulte Modelos de rede no modo plano x ilha.
Como implementar uma rede de modo plano que usa o BGP
Para implementar um cluster em um modelo de rede no modo plano com suporte do BGP, faça
as seguintes alterações no arquivo cluster.yaml
do cluster:
- Defina o campo
spec.clusterNetwork.advancedNetworking
comotrue
no recurso de cluster. - Defina o campo
spec.clusterNetwork.flatIPv4
comotrue
no recurso do cluster. - Quando
spec.clusterNetwork.flatIPv4
for definido comotrue
, o campospec.clusterNetwork.pods.cidrBlocks
será ignorado e poderá ser omitido. No entanto, você precisará definir uma seçãoClusterCIDRConfigs
no arquivo yaml (per-node, per-nodepool e/ou per-cluster). Veja o arquivocluster.yaml
de exemplo abaixo para mais detalhes. - Anexe um recurso
NetworkGatewayGroup
ao arquivocluster.yaml
e especifique os IPs flutuantes a serem usados para o peering do BGP. Verifique se o nome édefault
e se o namespace é o namespace do cluster. - Anexe os recursos
FlatIPMode
eBGPPeer
ao arquivocluster.yaml
. O nome do recursoFlatIPMode
precisa serdefault
, e todos os recursos precisam estar no namespace do cluster.
Para a visualização, somente os pares e as sessões do BGP IPv4 são suportados. No entanto, se o ambiente suportar o BGP multiprotocolo(MP-BGP), as rotas IPv4 e IPv6 poderão ser anunciadas nessas sessões. A configuração do BGP IPv6 de peering não é suportada na versão 1.11.0 de clusters do Anthos em Bare Metal.
O trecho a seguir de um arquivo cluster.yaml
mostra como implementar uma rede de modo plano
com o suporte do BGP. Os endereços IP que aparecem neste
trecho são apenas exemplos, e você precisará substituí-los pelos seus próprios endereços
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