32.5. A propos de la publicité pour les pools d'adresses IP
Vous pouvez configurer la MetalLB pour que l'adresse IP soit annoncée par les protocoles de la couche 2, le protocole BGP ou les deux. Avec la couche 2, MetalLB fournit une adresse IP externe tolérante aux pannes. Avec le protocole BGP, MetalLB fournit une tolérance aux pannes pour l'adresse IP externe et l'équilibrage de la charge.
MetalLB prend en charge la publicité par L2 et BGP pour le même ensemble d'adresses IP.
MetalLB offre la possibilité d'attribuer des pools d'adresses à des pairs BGP spécifiques, c'est-à-dire à un sous-ensemble de nœuds sur le réseau. Cela permet des configurations plus complexes, par exemple en facilitant l'isolation des nœuds ou la segmentation du réseau.
32.5.1. A propos de la ressource personnalisée BGPAdvertisement Copier lienLien copié sur presse-papiers!
Les champs de l'objet BGPAdvertisements
sont définis dans le tableau suivant :
Field | Type | Description |
---|---|---|
|
| Spécifie le nom de l'annonce BGP. |
|
| Spécifie l'espace de noms pour l'annonce BGP. Spécifiez le même espace de noms que celui utilisé par l'opérateur MetalLB. |
|
|
Facultatif : Spécifie le nombre de bits à inclure dans un masque CIDR de 32 bits. Pour agréger les routes que l'orateur annonce aux homologues BGP, le masque est appliqué aux routes pour plusieurs adresses IP de service et l'orateur annonce la route agrégée. Par exemple, avec une longueur d'agrégation de |
|
|
Facultatif : Spécifie le nombre de bits à inclure dans un masque CIDR de 128 bits. Par exemple, avec une longueur d'agrégation de |
|
| Facultatif : Spécifie une ou plusieurs communautés BGP. Chaque communauté est spécifiée sous la forme de deux valeurs de 16 bits séparées par le caractère deux-points. Les communautés connues doivent être spécifiées sous forme de valeurs de 16 bits :
|
|
| Facultatif : Spécifie la préférence locale pour cette annonce. Cet attribut BGP s'applique aux sessions BGP au sein du système autonome. |
|
|
Facultatif : La liste de |
|
|
Facultatif : Un sélecteur pour le |
|
|
Facultatif : |
|
| Facultatif : Peers (pairs) limite le pair BGP auquel annoncer les IP des pools sélectionnés. Lorsqu'elle est vide, l'IP de l'équilibreur de charge est annoncée à tous les pairs BGP configurés. |
32.5.2. Configurer MetalLB avec une annonce BGP et un cas d'utilisation de base Copier lienLien copié sur presse-papiers!
Configurez MetalLB comme suit pour que les routeurs BGP homologues reçoivent une route 203.0.113.200/32
et une route fc00:f853:ccd:e799::1/128
pour chaque adresse IP d'équilibreur de charge que MetalLB attribue à un service. Les champs localPref
et communities
n'étant pas spécifiés, les routes sont annoncées avec localPref
à zéro et aucune communauté BGP.
32.5.2.1. Exemple : Annonce d'une configuration de base d'un pool d'adresses avec BGP Copier lienLien copié sur presse-papiers!
Configurez MetalLB comme suit pour que le site IPAddressPool
soit annoncé par le protocole BGP.
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 IP.
Créez un fichier, tel que
ipaddresspool.yaml
, dont le contenu ressemble à l'exemple suivant :Copy to Clipboard Copied! Toggle word wrap Toggle overflow Appliquer la configuration du pool d'adresses IP :
oc apply -f ipaddresspool.yaml
$ oc apply -f ipaddresspool.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Créer une annonce BGP.
Créez un fichier, tel que
bgpadvertisement.yaml
, dont le contenu ressemble à l'exemple suivant :Copy to Clipboard Copied! Toggle word wrap Toggle overflow Appliquer la configuration :
oc apply -f bgpadvertisement.yaml
$ oc apply -f bgpadvertisement.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
32.5.3. Configurer MetalLB avec une annonce BGP et un cas d'utilisation avancé Copier lienLien copié sur presse-papiers!
Configurez MetalLB comme suit pour que MetalLB attribue des adresses IP aux services de load-balancer dans les plages entre 203.0.113.200
et 203.0.113.203
et entre fc00:f853:ccd:e799::0
et fc00:f853:ccd:e799::f
.
Pour expliquer les deux annonces BGP, considérons un cas où MetalLB attribue l'adresse IP 203.0.113.200
à un service. Avec cette adresse IP comme exemple, l'orateur annonce deux routes aux pairs BGP :
-
203.0.113.200/32
aveclocalPref
défini sur100
et la communauté définie sur la valeur numérique de la communautéNO_ADVERTISE
. Cette spécification indique aux routeurs homologues qu'ils peuvent utiliser cette route mais qu'ils ne doivent pas propager les informations relatives à cette route aux homologues BGP. -
203.0.113.200/30
l'adresse IP de l'équilibreur de charge est agrégée par MetalLB en une seule route. MetalLB annonce la route agrégée aux pairs BGP avec l'attribut community défini sur8000:800
. Les pairs BGP propagent la route203.0.113.200/30
à d'autres pairs BGP. Lorsque le trafic est acheminé vers un nœud doté d'un haut-parleur, la route203.0.113.200/32
est utilisée pour transférer le trafic dans le cluster et vers un pod associé au service.
Au fur et à mesure que vous ajoutez des services et que MetalLB attribue des adresses IP d'équilibreur de charge à partir du pool, les routeurs pairs reçoivent une route locale, 203.0.113.20x/32
, pour chaque service, ainsi que la route agrégée 203.0.113.200/30
. Chaque service ajouté génère la route /30
, mais MetalLB déduplique les routes en une annonce BGP avant de communiquer avec les routeurs pairs.
32.5.3.1. Exemple : Annonce d'une configuration avancée d'un pool d'adresses avec BGP Copier lienLien copié sur presse-papiers!
Configurez MetalLB comme suit pour que le site IPAddressPool
soit annoncé par le protocole BGP.
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 IP.
Créez un fichier, tel que
ipaddresspool.yaml
, dont le contenu ressemble à l'exemple suivant :Copy to Clipboard Copied! Toggle word wrap Toggle overflow Appliquer la configuration du pool d'adresses IP :
oc apply -f ipaddresspool.yaml
$ oc apply -f ipaddresspool.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Créer une annonce BGP.
Créez un fichier, tel que
bgpadvertisement1.yaml
, dont le contenu ressemble à l'exemple suivant :Copy to Clipboard Copied! Toggle word wrap Toggle overflow Appliquer la configuration :
oc apply -f bgpadvertisement1.yaml
$ oc apply -f bgpadvertisement1.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Créez un fichier, tel que
bgpadvertisement2.yaml
, dont le contenu ressemble à l'exemple suivant :Copy to Clipboard Copied! Toggle word wrap Toggle overflow Appliquer la configuration :
oc apply -f bgpadvertisement2.yaml
$ oc apply -f bgpadvertisement2.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
32.5.4. Publicité d'un groupe d'adresses IP à partir d'un sous-ensemble de nœuds Copier lienLien copié sur presse-papiers!
Pour annoncer une adresse IP à partir d'un pool d'adresses IP, uniquement à partir d'un ensemble spécifique de nœuds, utilisez la spécification .spec.nodeSelector
dans la ressource personnalisée BGPAdvertisement. Cette spécification associe un pool d'adresses IP à un ensemble de nœuds dans le cluster. Ceci est utile lorsque vous avez des nœuds sur différents sous-réseaux dans un cluster et que vous voulez annoncer une adresse IP à partir d'un pool d'adresses à partir d'un sous-réseau spécifique, par exemple un sous-réseau public uniquement.
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 IP en utilisant une ressource personnalisée :
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Contrôlez les nœuds du cluster à partir desquels l'adresse IP de
pool1
est annoncée en définissant la valeur.spec.nodeSelector
dans la ressource personnalisée BGPAdvertisement :Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Dans cet exemple, l'adresse IP de pool1
ne fait de la publicité que pour NodeA
et NodeB
.
32.5.5. À propos de la ressource personnalisée L2Advertisement Copier lienLien copié sur presse-papiers!
Les champs de l'objet l2Advertisements
sont définis dans le tableau suivant :
Field | Type | Description |
---|---|---|
|
| Spécifie le nom de l'annonce L2. |
|
| Spécifie l'espace de noms pour l'annonce L2. Spécifiez le même espace de noms que celui utilisé par l'opérateur MetalLB. |
|
|
Facultatif : La liste de |
|
|
Facultatif : Un sélecteur pour le |
|
|
Facultatif : Important La limitation des nœuds à annoncer en tant que sauts suivants est une fonctionnalité de l'aperçu technologique uniquement. Les fonctionnalités de l'aperçu technologique ne sont pas prises en charge par les accords de niveau de service (SLA) de production de Red Hat et peuvent ne pas être complètes sur le plan fonctionnel. Red Hat ne recommande pas leur utilisation en production. Ces fonctionnalités offrent un accès anticipé aux fonctionnalités des produits à venir, ce qui permet aux clients de tester les fonctionnalités et de fournir un retour d'information pendant le processus de développement. Pour plus d'informations sur la portée de l'assistance des fonctionnalités de l'aperçu technologique de Red Hat, voir Portée de l'assistance des fonctionnalités de l'aperçu technologique. |
32.5.6. Configuration de MetalLB avec une annonce L2 Copier lienLien copié sur presse-papiers!
Configurez MetalLB comme suit pour que le site IPAddressPool
soit annoncé avec le protocole L2.
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 IP.
Créez un fichier, tel que
ipaddresspool.yaml
, dont le contenu ressemble à l'exemple suivant :Copy to Clipboard Copied! Toggle word wrap Toggle overflow Appliquer la configuration du pool d'adresses IP :
oc apply -f ipaddresspool.yaml
$ oc apply -f ipaddresspool.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Créer une publicité L2.
Créez un fichier, tel que
l2advertisement.yaml
, dont le contenu ressemble à l'exemple suivant :Copy to Clipboard Copied! Toggle word wrap Toggle overflow Appliquer la configuration :
oc apply -f l2advertisement.yaml
$ oc apply -f l2advertisement.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
32.5.7. Configuration de MetalLB avec une annonce et une étiquette L2 Copier lienLien copié sur presse-papiers!
Le champ ipAddressPoolSelectors
dans les définitions des ressources personnalisées BGPAdvertisement
et L2Advertisement
est utilisé pour associer IPAddressPool
à l'annonce sur la base de l'étiquette attribuée à IPAddressPool
au lieu du nom lui-même.
Cet exemple montre comment configurer MetalLB pour que le site IPAddressPool
soit annoncé avec le protocole L2 en configurant le champ ipAddressPoolSelectors
.
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 IP.
Créez un fichier, tel que
ipaddresspool.yaml
, dont le contenu ressemble à l'exemple suivant :Copy to Clipboard Copied! Toggle word wrap Toggle overflow Appliquer la configuration du pool d'adresses IP :
oc apply -f ipaddresspool.yaml
$ oc apply -f ipaddresspool.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Créer une publicité L2 annonçant l'IP en utilisant
ipAddressPoolSelectors
.Créez un fichier, tel que
l2advertisement.yaml
, dont le contenu ressemble à l'exemple suivant :Copy to Clipboard Copied! Toggle word wrap Toggle overflow Appliquer la configuration :
oc apply -f l2advertisement.yaml
$ oc apply -f l2advertisement.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow