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: 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 leoperator.rollOutPods
définirtrue
dans 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=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
-
Créez un fichier appelé
cilium-bgp-cluster.yaml
avec uneCiliumBGPClusterConfig
définition. Vous devrez peut-être obtenir les informations suivantes auprès de votre administrateur réseau.-
Configurez
localASN
avec l'ASN pour les nœuds exécutant Cilium. -
Configurez
peerASN
avec l'ASN de votre routeur local. -
Configurez le
peerAddress
avec 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_ASN
peers: - name: "onprem-router" peerASN:ONPREM_ROUTER_ASN
peerAddress:ONPREM_ROUTER_IP
peerConfigRef: 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.yaml
avec laCiliumBGPPeerConfig
ressource qui définit une configuration d'homologue BGP. Plusieurs homologues peuvent partager la même configuration et fournir une référence à laCiliumBGPPeerConfig
ressource 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
holdTimeSeconds
ce 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
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. -
Configuration
restartTimeSeconds
qui 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:
90
keepAliveTimeSeconds:30
gracefulRestart: enabled: true restartTimeSeconds:120
families: - 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.yaml
avec uneCiliumBGPAdvertisement
ressource pour promouvoir le module CIDRs sur votre réseau local.-
La
CiliumBGPAdvertisement
ressource 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
advertisementType
est configuréePodCIDR
comme 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 peers
Vous 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 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}]