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.

Tableau 32.4. Ressource personnalisée du pair MetalLB BGP
FieldTypeDescription

metadata.name

string

Spécifie le nom de la ressource personnalisée de l'homologue BGP.

metadata.namespace

string

Spécifie l'espace de noms pour la ressource personnalisée de l'homologue BGP.

spec.myASN

integer

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 0 et 4294967295.

spec.peerASN

integer

Spécifie le numéro du système autonome pour l'extrémité distante de la session BGP. La plage est comprise entre 0 et 4294967295.

spec.peerAddress

string

Spécifie l'adresse IP de l'homologue à contacter pour établir la session BGP.

spec.sourceAddress

string

Facultatif : Spécifie l'adresse IP à utiliser lors de l'établissement de la session BGP. La valeur doit être une adresse IPv4.

spec.peerPort

integer

Facultatif : Spécifie le port réseau de l'homologue à contacter pour établir la session BGP. La plage est comprise entre 0 et 16384.

spec.holdTime

string

Facultatif : Spécifie la durée du temps de maintien à proposer à l'homologue BGP. La valeur minimale est de 3 secondes (3s). Les unités courantes sont les secondes et les minutes, telles que 3s, 1m, et 5m30s. Pour détecter plus rapidement les défaillances de chemin, configurez également BFD.

spec.keepaliveTime

string

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 holdTime. La valeur spécifiée doit être inférieure à la valeur du champ holdTime.

spec.routerID

string

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.

spec.password

string

Facultatif : Spécifie le mot de passe MD5 à envoyer à l'homologue pour les routeurs qui appliquent les sessions BGP authentifiées par TCP MD5.

spec.passwordSecret

string

Facultatif : Spécifie le nom du secret d'authentification pour le pair BGP. Le secret doit se trouver dans l'espace de noms metallb et être de type basic-auth.

spec.bfdProfile

string

Facultatif : Spécifie le nom d'un profil BFD.

spec.nodeSelectors

object[]

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.

spec.ebgpMultiHop

boolean

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 true. Ce champ s'applique à external BGP. BGP externe est le terme utilisé pour décrire l'appartenance d'un pair BGP à un système autonome différent.

Note

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

  1. 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
  2. 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 et pool2).
  • Configurez un ensemble de pairs BGP (peer1 et peer2).
  • Configurer l'annonce BGP pour assigner pool1 à peer1 et pool2 à peer2.

Conditions préalables

  • Installez le CLI OpenShift (oc).
  • Connectez-vous en tant qu'utilisateur disposant des privilèges cluster-admin.

Procédure

  1. Créer un pool d'adresses pool1.

    1. 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
    2. Appliquer la configuration du pool d'adresses IP pool1:

      $ oc apply -f ipaddresspool1.yaml
  2. Créer un pool d'adresses pool2.

    1. 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
    2. Appliquer la configuration du pool d'adresses IP pool2:

      $ oc apply -f ipaddresspool2.yaml
  3. Créer BGP peer1.

    1. 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
    2. Appliquer la configuration pour l'homologue BGP :

      $ oc apply -f bgppeer1.yaml
  4. Créer BGP peer2.

    1. 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
    2. Appliquer la configuration pour le pair BGP2 :

      $ oc apply -f bgppeer2.yaml
  5. Créer une annonce BGP 1.

    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
    2. Appliquer la configuration :

      $ oc apply -f bgpadvertisement1.yaml
  6. Créer une annonce BGP 2.

    1. 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
    2. 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
Note

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

32.6.5. Prochaines étapes

Red Hat logoGithubRedditYoutubeTwitter

Apprendre

Essayez, achetez et vendez

Communautés

À propos de la documentation Red Hat

Nous aidons les utilisateurs de Red Hat à innover et à atteindre leurs objectifs grâce à nos produits et services avec un contenu auquel ils peuvent faire confiance.

Rendre l’open source plus inclusif

Red Hat s'engage à remplacer le langage problématique dans notre code, notre documentation et nos propriétés Web. Pour plus de détails, consultez leBlog Red Hat.

À propos de Red Hat

Nous proposons des solutions renforcées qui facilitent le travail des entreprises sur plusieurs plates-formes et environnements, du centre de données central à la périphérie du réseau.

© 2024 Red Hat, Inc.