Ajudar a melhorar esta página
Para contribuir com este guia de usuário, escolha o link Editar esta página no GitHub, disponível no painel direito de cada página.
Configurar o BGP do Cilium para nós híbridos
Este tópico descreve como configurar o Protocolo de Gateway da Borda (BGP) do Cilium para o Amazon EKS Hybrid Nodes. A funcionalidade BGP do Cilium é chamada de Ambiente de gerenciamento BGP do Cilium
Configurar o BGP do Cilium
Pré-requisitos
-
Cilium instalado seguindo as instruções em Configurar a CNI para nós híbridos.
Procedimento
-
Para usar o BGP com o Cilium para anunciar endereços de pods ou serviços na sua rede on-premises, você deve ter o Cilium instalado com
bgpControlPlane.enabled: true
. Caso esteja habilitando o BGP para uma implantação existente do Cilium, você deverá reiniciar o operador do Cilium para aplicar a configuração do BGP caso ele não tenha sido habilitado anteriormente. Você pode definiroperator.rollOutPods
comotrue
nos seus valores do Helm para reiniciar o operador do Cilium como parte do processo de instalação e atualização do Helm.helm upgrade cilium oci://public.ecr.aws/eks/cilium/cilium \ --namespace kube-system \ --reuse-values \ --set operator.rollOutPods=true \ --set bgpControlPlane.enabled=true
-
Confirme se o operador e os atendentes do Cilium foram reiniciados e estão funcionando.
kubectl -n kube-system get pods --selector=app.kubernetes.io/part-of=cilium
NAME READY STATUS RESTARTS AGE cilium-grwlc 1/1 Running 0 4m12s cilium-operator-68f7766967-5nnbl 1/1 Running 0 4m20s cilium-operator-68f7766967-7spfz 1/1 Running 0 4m20s cilium-pnxcv 1/1 Running 0 6m29s cilium-r7qkj 1/1 Running 0 4m12s cilium-wxhfn 1/1 Running 0 4m1s cilium-z7hlb 1/1 Running 0 6m30s
-
Crie um arquivo chamado
cilium-bgp-cluster.yaml
com uma definiçãoCiliumBGPClusterConfig
. Talvez seja necessário obter as informações a seguir do seu administrador de rede.-
Configure o
localASN
com o ASN dos nós que executam o Cilium. -
Configure o
peerASN
com o ASN do roteador on-premises. -
Configure o
peerAddress
com o IP do roteador on-premises com o qual cada nó que executa o Cilium fará emparelhamento.apiVersion: cilium.io/v2alpha1 kind: CiliumBGPClusterConfig metadata: name: cilium-bgp spec: nodeSelector: matchExpressions: - key: eks.amazonaws.com/compute-type operator: In values: - hybrid bgpInstances: - name: "rack0" localASN:
NODES_ASN
peers: - name: "onprem-router" peerASN:ONPREM_ROUTER_ASN
peerAddress:ONPREM_ROUTER_IP
peerConfigRef: name: "cilium-peer"
-
-
Aplique a configuração do cluster do BGP do Cilium ao seu cluster.
kubectl apply -f cilium-bgp-cluster.yaml
-
Crie um arquivo
cilium-bgp-peer.yaml
com o nome do recursoCiliumBGPPeerConfig
que define a configuração de pares do BGP. Vários pares podem compartilhar a mesma configuração e fornecer referência ao recurso comum deCiliumBGPPeerConfig
. Consulte a configuração de pares do BGPna documentação do Cilium para obter uma lista completa das opções de configuração. Os valores das seguintes configurações de pares do Cilium devem corresponder aos do roteador on-premises com o qual você está fazendo o emparelhamento.
-
Configure
holdTimeSeconds
, que determina quanto tempo um par do BGP espera por uma mensagem de manutenção ou atualização antes de declarar a sessão inativa. O padrão é de 90 segundos. -
Configure
keepAliveTimeSeconds
, que determina se um par do BGP ainda está acessível e se a sessão do BGP está ativa. O padrão é 30 segundos. -
Configure
restartTimeSeconds
, que determina o tempo em que se espera que o ambiente de gerenciamento do BGP do Cilium restabeleça a sessão do BGP após uma reinicialização. O padrão é 120 segundos.apiVersion: cilium.io/v2alpha1 kind: CiliumBGPPeerConfig metadata: name: cilium-peer spec: timers: holdTimeSeconds:
90
keepAliveTimeSeconds:30
gracefulRestart: enabled: true restartTimeSeconds:120
families: - afi: ipv4 safi: unicast advertisements: matchLabels: advertise: "bgp"
-
-
Aplique a configuração de pares do BGP do Cilium ao seu cluster.
kubectl apply -f cilium-bgp-peer.yaml
-
Crie um arquivo
cilium-bgp-advertisement-pods.yaml
com o nome de um recursoCiliumBGPAdvertisement
para anunciar os CIDRs do pod em sua rede on-premises.-
O recurso
CiliumBGPAdvertisement
é usado para definir tipos e atributos de anúncios associados a eles. O exemplo abaixo configura o Cilium para anunciar somente CIDRs de pod. Veja os exemplos em Tipo de serviço LoadBalancer e Balanceamento de carga no cluster do Cilium para obter mais informações sobre como configurar o Cilium para anunciar endereços de serviços. -
Cada nó híbrido que executa o atendente do Cilium emparelha com o roteador upstream habilitado para BGP. Cada nó anuncia a faixa de pod CIDR que possui quando
advertisementType
do Cilium está configurada comoPodCIDR
no exemplo abaixo. Consulte a configuração de anúncios do BGPna documentação do Cilium para obter mais informações. apiVersion: cilium.io/v2alpha1 kind: CiliumBGPAdvertisement metadata: name: bgp-advertisement-pods labels: advertise: bgp spec: advertisements: - advertisementType: "PodCIDR"
-
-
Aplique a configuração de anúncios do BGP do Cilium ao seu cluster.
kubectl apply -f cilium-bgp-advertisement-pods.yaml
-
Você pode confirmar que o emparelhamento do BGP funcionou com a CLI do Cilium
usando o comando cilium bgp peers
. Você deve ver os valores corretos na saída do ambiente e no estado da sessão comoestablished
. Consulte o Guia de solução de problemas e operaçõesna documentação do Cilium para obter mais informações sobre a solução de problemas. Nos exemplos abaixo, há cinco nós híbridos executando o atendente do Cilium e cada nó está anunciando o intervalo de CIDR do Pod que possui.
cilium bgp peers
Node Local AS Peer AS Peer Address Session State Uptime Family Received Advertised mi-026d6a261e355fba7
NODES_ASN
ONPREM_ROUTER_ASN
ONPREM_ROUTER_IP
established 1h18m58s ipv4/unicast 1 2 mi-082f73826a163626eNODES_ASN
ONPREM_ROUTER_ASN
ONPREM_ROUTER_IP
established 1h19m12s ipv4/unicast 1 2 mi-09183e8a3d755abf6NODES_ASN
ONPREM_ROUTER_ASN
ONPREM_ROUTER_IP
established 1h18m47s ipv4/unicast 1 2 mi-0d78d815980ed202dNODES_ASN
ONPREM_ROUTER_ASN
ONPREM_ROUTER_IP
established 1h19m12s ipv4/unicast 1 2 mi-0daa253999fe92daaNODES_ASN
ONPREM_ROUTER_ASN
ONPREM_ROUTER_IP
established 1h18m58s ipv4/unicast 1 2cilium bgp routes
Node VRouter Prefix NextHop Age Attrs mi-026d6a261e355fba7
NODES_ASN
10.86.2.0/26 0.0.0.0 1h16m46s [{Origin: i} {Nexthop: 0.0.0.0}] mi-082f73826a163626eNODES_ASN
10.86.2.192/26 0.0.0.0 1h16m46s [{Origin: i} {Nexthop: 0.0.0.0}] mi-09183e8a3d755abf6NODES_ASN
10.86.2.64/26 0.0.0.0 1h16m46s [{Origin: i} {Nexthop: 0.0.0.0}] mi-0d78d815980ed202dNODES_ASN
10.86.2.128/26 0.0.0.0 1h16m46s [{Origin: i} {Nexthop: 0.0.0.0}] mi-0daa253999fe92daaNODES_ASN
10.86.3.0/26 0.0.0.0 1h16m46s [{Origin: i} {Nexthop: 0.0.0.0}]