Aidez à améliorer cette page
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Pour contribuer à ce guide de l'utilisateur, cliquez sur le GitHub lien Modifier cette page sur qui se trouve dans le volet droit de chaque page.
Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Configurer Cilium BGP pour les nœuds hybrides
Cette rubrique explique comment configurer le protocole BGP (Cilium Border Gateway Protocol) pour les nœuds hybrides Amazon EKS. La fonctionnalité BGP de Cilium s'appelle Cilium BGP Control Plane
Configurer Cilium BGP
Prérequis
-
Cilium a été installé en suivant les instructions fournies dans. Configurer le CNI pour les nœuds hybrides
Procédure
-
Pour utiliser BGP avec Cilium afin de publier des adresses de pod ou de service sur votre réseau local, Cilium doit être installé avec.
bgpControlPlane.enabled: trueSi vous activez BGP pour un déploiement Cilium existant, vous devez redémarrer l'opérateur Cilium pour appliquer la configuration BGP si BGP n'était pas activé auparavant. Vous pouvez leoperator.rollOutPodsdéfinirtruedans vos valeurs Helm pour redémarrer l'opérateur Cilium dans le cadre du processus Helm install/upgrade .helm upgrade cilium oci://public.ecr.aws/eks/cilium/cilium \ --namespace kube-system \ --reuse-values \ --set operator.rollOutPods=true \ --set bgpControlPlane.enabled=true -
Vérifiez que l'opérateur et les agents Cilium ont été redémarrés et sont en cours d'exécution.
kubectl -n kube-system get pods --selector=app.kubernetes.io/part-of=ciliumNAME 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 -
Créez un fichier appelé
cilium-bgp-cluster.yamlavec uneCiliumBGPClusterConfigdéfinition. Vous devrez peut-être obtenir les informations suivantes auprès de votre administrateur réseau.-
Configurez
localASNavec l'ASN pour les nœuds exécutant Cilium. -
Configurez
peerASNavec l'ASN de votre routeur local. -
Configurez le
peerAddressavec l'adresse IP du routeur local à laquelle chaque nœud exécutant Cilium sera homologue.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_ASNpeers: - name: "onprem-router" peerASN:ONPREM_ROUTER_ASNpeerAddress:ONPREM_ROUTER_IPpeerConfigRef: name: "cilium-peer"
-
-
Appliquez la configuration du cluster Cilium BGP à votre cluster.
kubectl apply -f cilium-bgp-cluster.yaml -
Créez un fichier nommé
cilium-bgp-peer.yamlavec laCiliumBGPPeerConfigressource qui définit une configuration d'homologue BGP. Plusieurs homologues peuvent partager la même configuration et fournir une référence à laCiliumBGPPeerConfigressource commune. Consultez la configuration BGP Peerdans la documentation de Cilium pour une liste complète des options de configuration. Les valeurs des paramètres homologues Cilium suivants doivent correspondre à celles du routeur local avec lequel vous effectuez le peering.
-
Configurez
holdTimeSecondsce qui détermine la durée pendant laquelle un pair BGP attend un message de maintien en vie ou de mise à jour avant de déclarer la session interrompue. La valeur par défaut est de 90 secondes. -
Configurez
keepAliveTimeSecondsce qui détermine si un pair BGP est toujours accessible et si la session BGP est active. Le durée par défaut est 30 secondes. -
Configuration
restartTimeSecondsqui détermine l'heure à laquelle le plan de contrôle BGP de Cilium est censé rétablir la session BGP après un redémarrage. La durée par défaut est de 120 secondes.apiVersion: cilium.io/v2alpha1 kind: CiliumBGPPeerConfig metadata: name: cilium-peer spec: timers: holdTimeSeconds:90keepAliveTimeSeconds:30gracefulRestart: enabled: true restartTimeSeconds:120families: - afi: ipv4 safi: unicast advertisements: matchLabels: advertise: "bgp"
-
-
Appliquez la configuration homologue Cilium BGP à votre cluster.
kubectl apply -f cilium-bgp-peer.yaml -
Créez un fichier nommé
cilium-bgp-advertisement-pods.yamlavec uneCiliumBGPAdvertisementressource pour promouvoir le module CIDRs sur votre réseau local.-
La
CiliumBGPAdvertisementressource est utilisée pour définir les types de publicités et les attributs qui leur sont associés. L'exemple ci-dessous configure Cilium pour qu'il fasse de la publicité uniquement pour le pod. CIDRs Consultez les exemples présentés dans Type de service LoadBalancer et Équilibrage de charge au sein du cluster Cilium pour plus d'informations sur la configuration de Cilium pour publier des adresses de service. -
Chaque nœud hybride exécutant l'agent Cilium est homologue au routeur BGP en amont. Chaque nœud annonce la plage CIDR du pod qu'il possède lorsque celle de Cilium
advertisementTypeest configuréePodCIDRcomme dans l'exemple ci-dessous. Consultez la configuration des publicités BGPdans la documentation de Cilium pour plus d'informations. apiVersion: cilium.io/v2alpha1 kind: CiliumBGPAdvertisement metadata: name: bgp-advertisement-pods labels: advertise: bgp spec: advertisements: - advertisementType: "PodCIDR"
-
-
Appliquez la configuration de publicité Cilium BGP à votre cluster.
kubectl apply -f cilium-bgp-advertisement-pods.yaml -
Vous pouvez confirmer que le peering BGP a fonctionné avec la CLI Cilium
à l'aide de la commande. cilium bgp peersVous devriez voir les valeurs correctes dans la sortie pour votre environnement et l'état de la session sous la formeestablished. Consultez le guide de dépannage et d'exploitationdans la documentation de Cilium pour plus d'informations sur le dépannage. Dans les exemples ci-dessous, cinq nœuds hybrides exécutent l'agent Cilium et chaque nœud annonce la gamme Pod CIDR dont il est propriétaire.
cilium bgp peersNode Local AS Peer AS Peer Address Session State Uptime Family Received Advertised mi-026d6a261e355fba7NODES_ASNONPREM_ROUTER_ASNONPREM_ROUTER_IPestablished 1h18m58s ipv4/unicast 1 2 mi-082f73826a163626eNODES_ASNONPREM_ROUTER_ASNONPREM_ROUTER_IPestablished 1h19m12s ipv4/unicast 1 2 mi-09183e8a3d755abf6NODES_ASNONPREM_ROUTER_ASNONPREM_ROUTER_IPestablished 1h18m47s ipv4/unicast 1 2 mi-0d78d815980ed202dNODES_ASNONPREM_ROUTER_ASNONPREM_ROUTER_IPestablished 1h19m12s ipv4/unicast 1 2 mi-0daa253999fe92daaNODES_ASNONPREM_ROUTER_ASNONPREM_ROUTER_IPestablished 1h18m58s ipv4/unicast 1 2cilium bgp routesNode VRouter Prefix NextHop Age Attrs mi-026d6a261e355fba7NODES_ASN10.86.2.0/26 0.0.0.0 1h16m46s [{Origin: i} {Nexthop: 0.0.0.0}] mi-082f73826a163626eNODES_ASN10.86.2.192/26 0.0.0.0 1h16m46s [{Origin: i} {Nexthop: 0.0.0.0}] mi-09183e8a3d755abf6NODES_ASN10.86.2.64/26 0.0.0.0 1h16m46s [{Origin: i} {Nexthop: 0.0.0.0}] mi-0d78d815980ed202dNODES_ASN10.86.2.128/26 0.0.0.0 1h16m46s [{Origin: i} {Nexthop: 0.0.0.0}] mi-0daa253999fe92daaNODES_ASN10.86.3.0/26 0.0.0.0 1h16m46s [{Origin: i} {Nexthop: 0.0.0.0}]