Ayude a mejorar esta página
Para contribuir a esta guía del usuario, elija el enlace Edit this page on GitHub que se encuentra en el panel derecho de cada página.
Configuración del BGP de Cilium para nodos híbridos
En este tema se describe cómo configurar el protocolo de puerta de enlace fronteriza (BGP) de Cilium para los nodos híbridos de Amazon EKS. La funcionalidad del BGP de Cilium se denomina Cilium BGP Control Plane
Configuración del BGP de Cilium
Requisitos previos
-
Se instaló Cilium según las instrucciones de Configuración de una CNI para nodos híbridos.
Procedimiento
-
Para usar el BGP con Cilium a fin de anunciar las direcciones de los pods o los servicios en la red en las instalaciones, debe haber instalado Cilium con
bgpControlPlane.enabled: true
. Si activa BGP para una implementación de Cilium existente, debe reiniciar el operador de Cilium para aplicar la configuración de BGP si BGP no se activó anteriormente. Puede configuraroperator.rollOutPods
comotrue
en sus valores de Helm para reiniciar el operador de Cilium como parte del proceso de instalación o actualización de 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 que el operador y los agentes de Cilium se hayan reiniciado y estén 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
-
Cree un archivo llamado
cilium-bgp-cluster.yaml
con una definiciónCiliumBGPClusterConfig
. Es posible que deba obtener la siguiente información de su administrador de red.-
Configure
localASN
con el ASN para los nodos que ejecutan Cilium. -
Configure
peerASN
con el ASN de su enrutador en las instalaciones. -
Configure
peerAddress
con la IP del enrutador en las instalaciones con la que se emparejará cada nodo que ejecute Cilium.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 la configuración de clúster del BGP de Cilium al clúster.
kubectl apply -f cilium-bgp-cluster.yaml
-
Cree un archivo denominado
cilium-bgp-peer.yaml
con el recursoCiliumBGPPeerConfig
que define una configuración de emparejamiento del BGP. Varios pares pueden compartir la misma configuración y proporcionar una referencia al recursoCiliumBGPPeerConfig
común. Consulte BGP Peer configurationen la documentación de Cilium para obtener una lista completa de las opciones de configuración. Los valores de las siguientes configuraciones de emparejamiento de Cilium deben coincidir con los del router en las instalaciones con el que se empareja.
-
Configure
holdTimeSeconds
para determinar cuánto tiempo espera un emparejamiento del BGP a recibir un mensaje de mantenimiento o actualización antes de declarar la sesión inactiva. El valor predeterminado es de 90 segundos. -
Configure
keepAliveTimeSeconds
para determinar si aún se puede acceder a un emparejamiento del BGP y si la sesión del BGP está activa. El valor predeterminado es de 30 segundos. -
Configure
restartTimeSeconds
para determinar el momento en que se espera que el plano de control del BGP de Cilium restablezca la sesión del BGP tras un reinicio. El valor predeterminado es de 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 la configuración de emparejamiento del BGP de Cilium al clúster.
kubectl apply -f cilium-bgp-peer.yaml
-
Cree un archivo llamado
cilium-bgp-advertisement-pods.yaml
con un recursoCiliumBGPAdvertisement
para anunciar los CIDR de pods en su red en las instalaciones.-
El recurso
CiliumBGPAdvertisement
se utiliza para definir varios tipos de anuncios y los atributos asociados a estos. En el siguiente ejemplo, se configura Cilium para que anuncie únicamente los CIDR de pods. Consulte los ejemplos de LoadBalancer del tipo de servicio y Equilibrio de carga en el clúster de Cilium para obtener más información sobre la configuración de Cilium para anunciar las direcciones de los servicios. -
Cada nodo híbrido que ejecuta el agente de Cilium se empareja con el router ascendente compatible con el BGP. Cada nodo anuncia el rango de CIDR del pod que posee cuando el
advertisementType
de Cilium está configurado enPodCIDR
como en el ejemplo siguiente. Consulte BGP Advertisements configurationen la documentación de Cilium para obtener más información. apiVersion: cilium.io/v2alpha1 kind: CiliumBGPAdvertisement metadata: name: bgp-advertisement-pods labels: advertise: bgp spec: advertisements: - advertisementType: "PodCIDR"
-
-
Aplique la configuración de anuncio de BGP de Cilium al clúster.
kubectl apply -f cilium-bgp-advertisement-pods.yaml
-
Puede confirmar que el emparejamiento de BGP funcionó con la CLI de Cilium
mediante el comando cilium bgp peers
. Debería ver los valores correctos en la salida del entorno y el estado de la sesión comoestablished
. Consulte la Guía de solución de problemas y operacionesen la documentación de Cilium para obtener más información sobre la solución de problemas. En los ejemplos siguientes, hay cinco nodos híbridos que ejecutan el agente de Cilium y cada nodo anuncia el rango de CIDR de pods que posee.
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}]