32.4. Configuration des pools d'adresses MetalLB
En tant qu'administrateur de cluster, vous pouvez ajouter, modifier et supprimer des pools d'adresses. L'opérateur MetalLB utilise les ressources personnalisées du pool d'adresses pour définir les adresses IP que MetalLB peut attribuer aux services. L'espace de noms utilisé dans les exemples suppose que l'espace de noms est metallb-system
.
32.4.1. À propos de la ressource personnalisée IPAddressPool
La définition de ressource personnalisée du pool d'adresses (CRD) et l'API documentées dans "Load balancing with MetalLB" dans OpenShift Container Platform 4.10 peuvent toujours être utilisées dans 4.12. Cependant, la fonctionnalité améliorée associée à la publicité de IPAddressPools
avec la couche 2 ou le protocole BGP n'est pas prise en charge lors de l'utilisation de la CRD du pool d'adresses.
Les champs de la ressource personnalisée IPAddressPool
sont décrits dans le tableau suivant.
Field | Type | Description |
---|---|---|
|
|
Spécifie le nom du pool d'adresses. Lorsque vous ajoutez un service, vous pouvez spécifier ce nom de pool dans l'annotation |
|
| Spécifie l'espace de noms pour le pool d'adresses. Spécifier le même espace de noms que celui utilisé par l'opérateur MetalLB. |
|
|
Facultatif : Spécifie la paire clé-valeur attribuée à |
|
| Spécifie une liste d'adresses IP que MetalLB Operator attribuera aux services. Vous pouvez spécifier plusieurs plages dans un seul pool ; elles partageront toutes les mêmes paramètres. Spécifiez chaque plage en notation CIDR ou sous forme d'adresses IP de début et de fin séparées par un trait d'union. |
|
|
Facultatif : Spécifie si MetalLB attribue automatiquement les adresses IP de ce pool. Spécifiez |
32.4.2. Configuration d'un pool d'adresses
En tant qu'administrateur de cluster, vous pouvez ajouter des pools d'adresses à votre cluster pour contrôler les adresses IP que MetalLB peut attribuer aux services de load-balancer.
Conditions préalables
-
Installez le CLI OpenShift (
oc
). -
Connectez-vous en tant qu'utilisateur disposant des privilèges
cluster-admin
.
Procédure
Créez un fichier, tel que
ipaddresspool.yaml
, dont le contenu ressemble à l'exemple suivant :apiVersion: metallb.io/v1beta1 kind: IPAddressPool metadata: namespace: metallb-system name: doc-example labels: 1 zone: east spec: addresses: - 203.0.113.1-203.0.113.10 - 203.0.113.65-203.0.113.75
- 1
- Cette étiquette attribuée à
IPAddressPool
peut être référencée paripAddressPoolSelectors
dans le CRDBGPAdvertisement
pour associerIPAddressPool
à l'annonce.
Appliquer la configuration du pool d'adresses IP :
$ oc apply -f ipaddresspool.yaml
Vérification
Afficher le pool d'adresses :
$ oc describe -n metallb-system IPAddressPool doc-example
Exemple de sortie
Name: doc-example Namespace: metallb-system Labels: zone=east Annotations: <none> API Version: metallb.io/v1beta1 Kind: IPAddressPool Metadata: ... Spec: Addresses: 203.0.113.1-203.0.113.10 203.0.113.65-203.0.113.75 Auto Assign: true Events: <none>
Confirmez que le nom du pool d'adresses, tel que doc-example
, et les plages d'adresses IP apparaissent dans la sortie.
32.4.3. Exemples de configurations de pools d'adresses
32.4.3.1. Exemple : Plages IPv4 et CIDR
Vous pouvez spécifier une plage d'adresses IP en notation CIDR. Vous pouvez combiner la notation CIDR avec la notation qui utilise un trait d'union pour séparer les limites inférieures et supérieures.
apiVersion: metallb.io/v1beta1 kind: IPAddressPool metadata: name: doc-example-cidr namespace: metallb-system spec: addresses: - 192.168.100.0/24 - 192.168.200.0/24 - 192.168.255.1-192.168.255.5
32.4.3.2. Exemple : Réserver des adresses IP
Vous pouvez définir le champ autoAssign
sur false
pour empêcher MetalLB d'attribuer automatiquement les adresses IP du pool. Lorsque vous ajoutez un service, vous pouvez demander une adresse IP spécifique du pool ou vous pouvez spécifier le nom du pool dans une annotation pour demander n'importe quelle adresse IP du pool.
apiVersion: metallb.io/v1beta1 kind: IPAddressPool metadata: name: doc-example-reserved namespace: metallb-system spec: addresses: - 10.0.100.0/28 autoAssign: false
32.4.3.3. Exemple : Adresses IPv4 et IPv6
Vous pouvez ajouter des pools d'adresses qui utilisent IPv4 et IPv6. Vous pouvez spécifier plusieurs plages dans la liste addresses
, comme dans plusieurs exemples IPv4.
L'attribution d'une adresse IPv4 unique, d'une adresse IPv6 unique ou des deux est déterminée par la façon dont vous ajoutez le service. Les champs spec.ipFamilies
et spec.ipFamilyPolicy
contrôlent la manière dont les adresses IP sont attribuées au service.
apiVersion: metallb.io/v1beta1 kind: IPAddressPool metadata: name: doc-example-combined namespace: metallb-system spec: addresses: - 10.0.100.0/28 - 2002:2:2::1-2002:2:2::100
32.4.4. Ressources supplémentaires
32.4.5. Prochaines étapes
- Pour le mode BGP, voir Configuration des pairs BGP MetalLB.
- Configuration des services pour l'utilisation de MetalLB.