32.6. Configuration des pairs BGP de la MetalLB
En tant qu'administrateur de cluster, vous pouvez ajouter, modifier et supprimer des pairs BGP (Border Gateway Protocol). L'opérateur MetalLB utilise les ressources personnalisées des pairs BGP pour identifier les pairs que les pods MetalLB speaker
contactent pour démarrer des sessions BGP. Les pairs reçoivent les annonces de routes pour les adresses IP des répartiteurs de charge que MetalLB attribue aux services.
32.6.1. A propos de la ressource personnalisée BGP peer
Les champs de la ressource personnalisée BGP peer sont décrits dans le tableau suivant.
Field | Type | Description |
---|---|---|
|
| Spécifie le nom de la ressource personnalisée de l'homologue BGP. |
|
| Spécifie l'espace de noms pour la ressource personnalisée de l'homologue BGP. |
|
|
Spécifie le numéro du système autonome pour l'extrémité locale de la session BGP. Spécifiez la même valeur dans toutes les ressources personnalisées de l'homologue BGP que vous ajoutez. La plage est comprise entre |
|
|
Spécifie le numéro du système autonome pour l'extrémité distante de la session BGP. La plage est comprise entre |
|
| Spécifie l'adresse IP de l'homologue à contacter pour établir la session BGP. |
|
| Facultatif : Spécifie l'adresse IP à utiliser lors de l'établissement de la session BGP. La valeur doit être une adresse IPv4. |
|
|
Facultatif : Spécifie le port réseau de l'homologue à contacter pour établir la session BGP. La plage est comprise entre |
|
|
Facultatif : Spécifie la durée du temps de maintien à proposer à l'homologue BGP. La valeur minimale est de 3 secondes ( |
|
|
Facultatif : Spécifie l'intervalle maximum entre l'envoi de messages keep-alive à l'homologue BGP. Si vous spécifiez ce champ, vous devez également spécifier une valeur pour le champ |
|
| Facultatif : Spécifie l'ID du routeur à annoncer à l'homologue BGP. Si vous spécifiez ce champ, vous devez indiquer la même valeur dans chaque ressource personnalisée d'homologue BGP que vous ajoutez. |
|
| Facultatif : Spécifie le mot de passe MD5 à envoyer à l'homologue pour les routeurs qui appliquent les sessions BGP authentifiées par TCP MD5. |
|
|
Facultatif : Spécifie le nom du secret d'authentification pour le pair BGP. Le secret doit se trouver dans l'espace de noms |
|
| Facultatif : Spécifie le nom d'un profil BFD. |
|
| Facultatif : Spécifie un sélecteur, à l'aide d'expressions et d'étiquettes de correspondance, pour contrôler quels nœuds peuvent se connecter à l'homologue BGP. |
|
|
Facultatif : Spécifie que l'homologue BGP se trouve à plusieurs sauts de réseau. Si l'homologue BGP n'est pas directement connecté au même réseau, l'orateur ne peut pas établir de session BGP à moins que ce champ ne soit défini sur |
Le champ passwordSecret
est mutuellement exclusif avec le champ password
et contient une référence à un secret contenant le mot de passe à utiliser. La définition des deux champs entraîne l'échec de l'analyse.
32.6.2. Configuration d'un pair BGP
En tant qu'administrateur de cluster, vous pouvez ajouter une ressource personnalisée BGP peer pour échanger des informations de routage avec les routeurs du réseau et annoncer les adresses IP des services.
Conditions préalables
-
Installez le CLI OpenShift (
oc
). -
Connectez-vous en tant qu'utilisateur disposant des privilèges
cluster-admin
. - Configurer MetalLB avec une annonce BGP.
Procédure
Créez un fichier, tel que
bgppeer.yaml
, dont le contenu ressemble à l'exemple suivant :apiVersion: metallb.io/v1beta2 kind: BGPPeer metadata: namespace: metallb-system name: doc-example-peer spec: peerAddress: 10.0.0.1 peerASN: 64501 myASN: 64500 routerID: 10.10.10.10
Appliquer la configuration pour l'homologue BGP :
$ oc apply -f bgppeer.yaml
32.6.3. Configurer un ensemble spécifique de pairs BGP pour un pool d'adresses donné
Cette procédure illustre comment :
-
Configurez un ensemble de pools d'adresses (
pool1
etpool2
). -
Configurez un ensemble de pairs BGP (
peer1
etpeer2
). -
Configurer l'annonce BGP pour assigner
pool1
àpeer1
etpool2
àpeer2
.
Conditions préalables
-
Installez le CLI OpenShift (
oc
). -
Connectez-vous en tant qu'utilisateur disposant des privilèges
cluster-admin
.
Procédure
Créer un pool d'adresses
pool1
.Créez un fichier, tel que
ipaddresspool1.yaml
, dont le contenu ressemble à l'exemple suivant :apiVersion: metallb.io/v1beta1 kind: IPAddressPool metadata: namespace: metallb-system name: pool1 spec: addresses: - 4.4.4.100-4.4.4.200 - 2001:100:4::200-2001:100:4::400
Appliquer la configuration du pool d'adresses IP
pool1
:$ oc apply -f ipaddresspool1.yaml
Créer un pool d'adresses
pool2
.Créez un fichier, tel que
ipaddresspool2.yaml
, dont le contenu ressemble à l'exemple suivant :apiVersion: metallb.io/v1beta1 kind: IPAddressPool metadata: namespace: metallb-system name: pool2 spec: addresses: - 5.5.5.100-5.5.5.200 - 2001:100:5::200-2001:100:5::400
Appliquer la configuration du pool d'adresses IP
pool2
:$ oc apply -f ipaddresspool2.yaml
Créer BGP
peer1
.Créez un fichier, tel que
bgppeer1.yaml
, dont le contenu ressemble à l'exemple suivant :apiVersion: metallb.io/v1beta2 kind: BGPPeer metadata: namespace: metallb-system name: peer1 spec: peerAddress: 10.0.0.1 peerASN: 64501 myASN: 64500 routerID: 10.10.10.10
Appliquer la configuration pour l'homologue BGP :
$ oc apply -f bgppeer1.yaml
Créer BGP
peer2
.Créez un fichier, tel que
bgppeer2.yaml
, dont le contenu ressemble à l'exemple suivant :apiVersion: metallb.io/v1beta2 kind: BGPPeer metadata: namespace: metallb-system name: peer2 spec: peerAddress: 10.0.0.2 peerASN: 64501 myASN: 64500 routerID: 10.10.10.10
Appliquer la configuration pour le pair BGP2 :
$ oc apply -f bgppeer2.yaml
Créer une annonce BGP 1.
Créez un fichier, tel que
bgpadvertisement1.yaml
, dont le contenu ressemble à l'exemple suivant :apiVersion: metallb.io/v1beta1 kind: BGPAdvertisement metadata: name: bgpadvertisement-1 namespace: metallb-system spec: ipAddressPools: - pool1 peers: - peer1 communities: - 65535:65282 aggregationLength: 32 aggregationLengthV6: 128 localPref: 100
Appliquer la configuration :
$ oc apply -f bgpadvertisement1.yaml
Créer une annonce BGP 2.
Créez un fichier, tel que
bgpadvertisement2.yaml
, dont le contenu ressemble à l'exemple suivant :apiVersion: metallb.io/v1beta1 kind: BGPAdvertisement metadata: name: bgpadvertisement-2 namespace: metallb-system spec: ipAddressPools: - pool2 peers: - peer2 communities: - 65535:65282 aggregationLength: 32 aggregationLengthV6: 128 localPref: 100
Appliquer la configuration :
$ oc apply -f bgpadvertisement2.yaml
32.6.4. Exemple de configurations de pairs BGP
32.6.4.1. Exemple : Limiter les nœuds qui se connectent à un pair BGP
Vous pouvez spécifier le champ sélecteurs de nœuds pour contrôler quels nœuds peuvent se connecter à un homologue BGP.
apiVersion: metallb.io/v1beta2 kind: BGPPeer metadata: name: doc-example-nodesel namespace: metallb-system spec: peerAddress: 10.0.20.1 peerASN: 64501 myASN: 64500 nodeSelectors: - matchExpressions: - key: kubernetes.io/hostname operator: In values: [compute-1.example.com, compute-2.example.com]
32.6.4.2. Exemple : Spécifier un profil BFD pour un pair BGP
Vous pouvez spécifier un profil BFD à associer aux pairs BGP. BFD complète BGP en fournissant une détection plus rapide des échecs de communication entre les pairs que BGP seul.
apiVersion: metallb.io/v1beta2 kind: BGPPeer metadata: name: doc-example-peer-bfd namespace: metallb-system spec: peerAddress: 10.0.20.1 peerASN: 64501 myASN: 64500 holdTime: "10s" bfdProfile: doc-example-bfd-profile-full
La suppression du profil de détection de transfert bidirectionnel (BFD) et de l'adresse bfdProfile
ajoutée à la ressource homologue du protocole de passerelle frontalière (BGP) ne désactive pas le BFD. Au lieu de cela, le pair BGP commence à utiliser le profil BFD par défaut. Pour désactiver le BFD à partir d'une ressource homologue BGP, supprimez la configuration de l'homologue BGP et recréez-la sans profil BFD. Pour plus d'informations, voir BZ#2050824.
32.6.4.3. Exemple : Spécifier les pairs BGP pour un réseau à double pile
Pour prendre en charge les réseaux à double pile, ajoutez une ressource personnalisée BGP pour IPv4 et une ressource personnalisée BGP pour IPv6.
apiVersion: metallb.io/v1beta2 kind: BGPPeer metadata: name: doc-example-dual-stack-ipv4 namespace: metallb-system spec: peerAddress: 10.0.20.1 peerASN: 64500 myASN: 64500 --- apiVersion: metallb.io/v1beta2 kind: BGPPeer metadata: name: doc-example-dual-stack-ipv6 namespace: metallb-system spec: peerAddress: 2620:52:0:88::104 peerASN: 64500 myASN: 64500