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 décrit comment configurer le protocole de passerelle frontière (BGP) de Cilium pour les nœuds hybrides Amazon EKS. La fonctionnalité BGP de Cilium s’appelle le plan de contrôle Cilium BGP
Configurer Cilium BGP
Prérequis
-
Cilium installé en suivant les instructions dans Configurer CNI pour les nœuds hybrides.
Procédure
-
Pour utiliser BGP avec Cilium afin de publier les adresses des pods ou des services sur votre réseau local, Cilium doit être installé avec
bgpControlPlane.enabled: true. Si 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 définiroperator.rollOutPodssurtruedans vos valeurs Helm pour redémarrer l’opérateur Cilium dans le cadre du processus d’installation/mise à niveau Helm.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 Cilium et les agents ont été redémarrés et fonctionnent correctement.
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 nommé
cilium-bgp-cluster.yamlavec une définitionCiliumBGPClusterConfig. 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 pour votre routeur local. -
Configurez le
peerAddressdu routeur local avec lequel chaque nœud exécutant Cilium sera appairé.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"
-
-
Appliquer la configuration du cluster Cilium BGP à votre cluster.
kubectl apply -f cilium-bgp-cluster.yaml -
Créez un fichier nommé
cilium-bgp-peer.yamld’après la ressourceCiliumBGPPeerConfigqui définit une configuration de pair BGP. Plusieurs pairs peuvent partager la même configuration et fournir une référence à la ressourceCiliumBGPPeerConfigcommune. Consultez la configuration BGP Peerdans la documentation Cilium pour obtenir la liste complète des options de configuration. Les valeurs des paramètres Cilium peer suivants doivent correspondre à celles du routeur local avec lequel vous établissez une connexion peer-to-peer.
-
Configurez
holdTimeSeconds, qui détermine la durée pendant laquelle un pair BGP attend un message de maintien ou de mise à jour avant de déclarer la session comme interrompue. La durée par défaut est de 90 secondes. -
Configurez
keepAliveTimeSeconds, ce 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. -
Configurez
restartTimeSeconds, le délai pendant lequel le plan de contrôle BGP de Cilium doit 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 de pair Cilium BGP à votre cluster.
kubectl apply -f cilium-bgp-peer.yaml -
Créez un fichier nommé
cilium-bgp-advertisement-pods.yamlavec une ressourceCiliumBGPAdvertisementpour annoncer les CIDR du pod à votre réseau sur site.-
Cette ressource
CiliumBGPAdvertisementsert à définir les types de publicités et les attributs qui leur sont associés. L’exemple ci-dessous configure Cilium pour qu’il n’annonce que les CIDR des pods. Consultez les exemples dans Type de service LoadBalancer et Équilibrage de charge dans le cluster Cilium pour plus d’informations sur la configuration de Cilium afin d’annoncer les adresses de service. -
Chaque nœud hybride exécutant l’agent Cilium est apparié avec le routeur en amont compatible BGP. Chaque nœud annonce la plage CIDR du pod dont il est propriétaire lorsque le
advertisementTypede Cilium est configuré surPodCIDRcomme dans l’exemple ci-dessous. Pour plus d’informations, consultez la configuration des annonces BGPdans la documentation Cilium. apiVersion: cilium.io/v2alpha1 kind: CiliumBGPAdvertisement metadata: name: bgp-advertisement-pods labels: advertise: bgp spec: advertisements: - advertisementType: "PodCIDR"
-
-
Appliquez la configuration Cilium BGP Advertisement à votre cluster.
kubectl apply -f cilium-bgp-advertisement-pods.yaml -
Vous pouvez vérifier que le peering BGP fonctionne avec l’interface CLI Cilium
à l’aide de la commande cilium bgp peers. Vous devriez voir les valeurs correctes dans la sortie pour votre environnement et l’état de session cen tant queestablished. Pour plus d’informations sur le dépannage, consultez le guide de dépannage et d’utilisationdans la documentation Cilium. Dans les exemples ci-dessous, cinq nœuds hybrides exécutent l’agent Cilium et chaque nœud annonce la plage CIDR Pod qu’il possède.
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}]