22.2. Configuration d'un réseau supplémentaire
En tant qu'administrateur de cluster, vous pouvez configurer un réseau supplémentaire pour votre cluster. Les types de réseaux suivants sont pris en charge :
22.2.1. Approches de la gestion d'un réseau supplémentaire
Vous pouvez gérer le cycle de vie d'un réseau supplémentaire selon deux approches. Chaque approche est mutuellement exclusive et vous ne pouvez utiliser qu'une seule approche à la fois pour gérer un réseau supplémentaire. Dans les deux cas, le réseau supplémentaire est géré par un plugin CNI (Container Network Interface) que vous configurez.
Pour un réseau supplémentaire, les adresses IP sont fournies par un plugin CNI de gestion des adresses IP (IPAM) que vous configurez dans le cadre du réseau supplémentaire. Le plugin IPAM prend en charge une variété d'approches d'attribution d'adresses IP, y compris l'attribution DHCP et l'attribution statique.
-
Modifier la configuration du Cluster Network Operator (CNO) : Le CNO crée et gère automatiquement l'objet
NetworkAttachmentDefinition
. En plus de gérer le cycle de vie de l'objet, le CNO s'assure qu'un DHCP est disponible pour un réseau supplémentaire qui utilise une adresse IP attribuée par DHCP. -
Appliquer un manifeste YAML : Vous pouvez gérer le réseau supplémentaire directement en créant un objet
NetworkAttachmentDefinition
. Cette approche permet le chaînage des plugins CNI.
Lors du déploiement de nœuds OpenShift Container Platform avec plusieurs interfaces réseau sur Red Hat OpenStack Platform (RHOSP) avec OVN SDN, la configuration DNS de l'interface secondaire peut être prioritaire sur la configuration DNS de l'interface primaire. Dans ce cas, supprimez les serveurs de noms DNS pour l'identifiant de sous-réseau qui est attaché à l'interface secondaire :
$ openstack subnet set --dns-nameserver 0.0.0.0 <subnet_id>
22.2.2. Configuration pour une connexion réseau supplémentaire
Un réseau supplémentaire est configuré en utilisant l'API NetworkAttachmentDefinition
dans le groupe d'API k8s.cni.cncf.io
.
Ne stockez pas d'informations sensibles ou secrètes dans l'objet NetworkAttachmentDefinition
car ces informations sont accessibles à l'utilisateur de l'administration du projet.
La configuration de l'API est décrite dans le tableau suivant :
Field | Type | Description |
---|---|---|
|
| Nom du réseau supplémentaire. |
|
| L'espace de noms auquel l'objet est associé. |
|
| La configuration du plugin CNI au format JSON. |
22.2.2.1. Configuration d'un réseau supplémentaire par l'intermédiaire de l'opérateur de réseau du cluster
La configuration d'une connexion réseau supplémentaire est spécifiée dans le cadre de la configuration de l'opérateur de réseau de cluster (CNO).
Le fichier YAML suivant décrit les paramètres de configuration pour la gestion d'un réseau supplémentaire avec le CNO :
Cluster Network Operator configuration
apiVersion: operator.openshift.io/v1 kind: Network metadata: name: cluster spec: # ... additionalNetworks: 1 - name: <name> 2 namespace: <namespace> 3 rawCNIConfig: |- 4 { ... } type: Raw
- 1
- Un tableau d'une ou plusieurs configurations de réseau supplémentaires.
- 2
- Le nom de la pièce jointe réseau supplémentaire que vous créez. Le nom doit être unique au sein de l'adresse
namespace
. - 3
- L'espace de noms dans lequel l'attachement au réseau doit être créé. Si vous ne spécifiez pas de valeur, l'espace de noms
default
est utilisé. - 4
- Une configuration du plugin CNI au format JSON.
22.2.2.2. Configuration d'un réseau supplémentaire à partir d'un manifeste YAML
La configuration d'un réseau supplémentaire est spécifiée dans un fichier de configuration YAML, comme dans l'exemple suivant :
apiVersion: k8s.cni.cncf.io/v1 kind: NetworkAttachmentDefinition metadata: name: <name> 1 spec: config: |- 2 { ... }
22.2.3. Configurations pour des types de réseaux supplémentaires
Les champs de configuration spécifiques aux réseaux supplémentaires sont décrits dans les sections suivantes.
22.2.3.1. Configuration d'un réseau supplémentaire de ponts
L'objet suivant décrit les paramètres de configuration du plugin CNI bridge :
Field | Type | Description |
---|---|---|
|
|
La version de la spécification CNI. La valeur |
|
|
La valeur du paramètre |
|
| |
|
|
Indiquez le nom du pont virtuel à utiliser. Si l'interface du pont n'existe pas sur l'hôte, elle est créée. La valeur par défaut est |
|
| L'objet de configuration pour le plugin IPAM CNI. Le plugin gère l'attribution des adresses IP pour la définition des pièces jointes. |
|
|
La valeur |
|
|
La valeur |
|
|
La valeur |
|
|
Défini sur |
|
|
La valeur |
|
|
La valeur |
|
| Spécifiez une balise de réseau local virtuel (VLAN) sous la forme d'une valeur entière. Par défaut, aucune balise VLAN n'est attribuée. |
|
| Fixe l'unité de transmission maximale (MTU) à la valeur spécifiée. La valeur par défaut est définie automatiquement par le noyau. |
22.2.3.1.1. exemple de configuration de pont
L'exemple suivant configure un réseau supplémentaire nommé bridge-net
:
{ "cniVersion": "0.3.1", "name": "work-network", "type": "bridge", "isGateway": true, "vlan": 2, "ipam": { "type": "dhcp" } }
22.2.3.2. Configuration d'un périphérique hôte réseau supplémentaire
Spécifiez votre périphérique réseau en définissant un seul des paramètres suivants : device
, hwaddr
, kernelpath
, ou pciBusID
.
L'objet suivant décrit les paramètres de configuration du plugin CNI hôte-dispositif :
Field | Type | Description |
---|---|---|
|
|
La version de la spécification CNI. La valeur |
|
|
La valeur du paramètre |
|
|
Le nom du plugin CNI à configurer : |
|
|
Facultatif : Le nom de l'appareil, par exemple |
|
| Facultatif : L'adresse MAC du matériel de l'appareil. |
|
|
Facultatif : Le chemin d'accès au périphérique du noyau Linux, tel que |
|
|
Facultatif : L'adresse PCI du périphérique réseau, par exemple |
22.2.3.2.1. exemple de configuration d'un dispositif hôte
L'exemple suivant configure un réseau supplémentaire nommé hostdev-net
:
{ "cniVersion": "0.3.1", "name": "work-network", "type": "host-device", "device": "eth1" }
22.2.3.3. Configuration d'un réseau supplémentaire IPVLAN
L'objet suivant décrit les paramètres de configuration du plugin IPVLAN CNI :
Field | Type | Description |
---|---|---|
|
|
La version de la spécification CNI. La valeur |
|
|
La valeur du paramètre |
|
|
Le nom du plugin CNI à configurer : |
|
|
Le mode de fonctionnement du réseau virtuel. La valeur doit être |
|
|
L'interface Ethernet à associer à l'attachement réseau. Si l'adresse |
|
| Fixe l'unité de transmission maximale (MTU) à la valeur spécifiée. La valeur par défaut est définie automatiquement par le noyau. |
|
| L'objet de configuration pour le plugin IPAM CNI. Le plugin gère l'attribution des adresses IP pour la définition des pièces jointes.
Ne pas spécifier |
22.2.3.3.1. exemple de configuration ipvlan
L'exemple suivant configure un réseau supplémentaire nommé ipvlan-net
:
{ "cniVersion": "0.3.1", "name": "work-network", "type": "ipvlan", "master": "eth1", "mode": "l3", "ipam": { "type": "static", "addresses": [ { "address": "192.168.10.10/24" } ] } }
22.2.3.4. Configuration d'un réseau supplémentaire MACVLAN
L'objet suivant décrit les paramètres de configuration du plugin CNI macvlan :
Field | Type | Description |
---|---|---|
|
|
La version de la spécification CNI. La valeur |
|
|
La valeur du paramètre |
|
|
Le nom du plugin CNI à configurer : |
|
|
Configure la visibilité du trafic sur le réseau virtuel. Doit être soit |
|
| L'interface réseau de l'hôte à associer à l'interface macvlan nouvellement créée. Si aucune valeur n'est spécifiée, l'interface de la route par défaut est utilisée. |
|
| L'unité de transmission maximale (MTU) à la valeur spécifiée. La valeur par défaut est définie automatiquement par le noyau. |
|
| L'objet de configuration pour le plugin IPAM CNI. Le plugin gère l'attribution des adresses IP pour la définition des pièces jointes. |
Si vous spécifiez la clé master
pour la configuration du plugin, utilisez une interface réseau physique différente de celle qui est associée à votre plugin réseau principal afin d'éviter tout conflit éventuel.
22.2.3.4.1. exemple de configuration macvlan
L'exemple suivant configure un réseau supplémentaire nommé macvlan-net
:
{ "cniVersion": "0.3.1", "name": "macvlan-net", "type": "macvlan", "master": "eth1", "mode": "bridge", "ipam": { "type": "dhcp" } }
22.2.4. Configuration de l'attribution d'adresses IP pour un réseau supplémentaire
Le module de gestion des adresses IP (IPAM) Container Network Interface (CNI) fournit des adresses IP aux autres modules CNI.
Vous pouvez utiliser les types d'attribution d'adresses IP suivants :
- Affectation statique.
- Attribution dynamique par le biais d'un serveur DHCP. Le serveur DHCP que vous spécifiez doit être accessible depuis le réseau supplémentaire.
- Affectation dynamique via le plugin CNI de Whereabouts IPAM.
22.2.4.1. Configuration de l'attribution d'une adresse IP statique
Le tableau suivant décrit la configuration pour l'attribution d'une adresse IP statique :
Field | Type | Description |
---|---|---|
|
|
Le type d'adresse IPAM. La valeur |
|
| Un tableau d'objets spécifiant les adresses IP à attribuer à l'interface virtuelle. Les adresses IPv4 et IPv6 sont prises en charge. |
|
| Un tableau d'objets spécifiant les routes à configurer dans le pod. |
|
| Facultatif : Un tableau d'objets spécifiant la configuration DNS. |
Le tableau addresses
nécessite des objets avec les champs suivants :
Field | Type | Description |
---|---|---|
|
|
Une adresse IP et un préfixe de réseau que vous spécifiez. Par exemple, si vous spécifiez |
|
| Passerelle par défaut vers laquelle acheminer le trafic réseau sortant. |
Field | Type | Description |
---|---|---|
|
|
La plage d'adresses IP au format CIDR, par exemple |
|
| La passerelle où le trafic réseau est acheminé. |
Field | Type | Description |
---|---|---|
|
| Un tableau d'une ou plusieurs adresses IP auxquelles envoyer les requêtes DNS. |
|
|
Le domaine par défaut à ajouter à un nom d'hôte. Par exemple, si le domaine est défini sur |
|
|
Un tableau de noms de domaine à ajouter à un nom d'hôte non qualifié, tel que |
Exemple de configuration de l'attribution d'une adresse IP statique
{ "ipam": { "type": "static", "addresses": [ { "address": "191.168.1.7/24" } ] } }
22.2.4.2. Configuration de l'attribution dynamique d'adresses IP (DHCP)
Le JSON suivant décrit la configuration pour l'attribution dynamique d'adresses IP avec DHCP.
Un pod obtient son bail DHCP d'origine lors de sa création. Le bail doit être renouvelé périodiquement par un serveur DHCP minimal déployé sur le cluster.
Pour déclencher le déploiement du serveur DHCP, vous devez créer un attachement réseau shim en modifiant la configuration de l'opérateur réseau du cluster, comme dans l'exemple suivant :
Exemple de définition de l'attachement au réseau de cales
apiVersion: operator.openshift.io/v1 kind: Network metadata: name: cluster spec: additionalNetworks: - name: dhcp-shim namespace: default type: Raw rawCNIConfig: |- { "name": "dhcp-shim", "cniVersion": "0.3.1", "type": "bridge", "ipam": { "type": "dhcp" } } # ...
Field | Type | Description |
---|---|---|
|
|
Le type d'adresse IPAM. La valeur |
Exemple de configuration de l'attribution dynamique d'une adresse IP (DHCP)
{ "ipam": { "type": "dhcp" } }
22.2.4.3. Configuration de l'attribution dynamique d'adresses IP avec Whereabouts
Le plugin Whereabouts CNI permet l'attribution dynamique d'une adresse IP à un réseau supplémentaire sans utiliser de serveur DHCP.
Le tableau suivant décrit la configuration pour l'attribution dynamique d'adresses IP avec Whereabouts :
Field | Type | Description |
---|---|---|
|
|
Le type d'adresse IPAM. La valeur |
|
| Une adresse IP et une plage d'adresses en notation CIDR. Les adresses IP sont attribuées à partir de cette plage d'adresses. |
|
| Facultatif : Une liste de zéro ou plusieurs adresses IP et plages d'adresses en notation CIDR. Les adresses IP situées dans une plage d'adresses exclue ne sont pas attribuées. |
Exemple de configuration de l'attribution dynamique d'adresses IP à l'aide de Whereabouts
{ "ipam": { "type": "whereabouts", "range": "192.0.2.192/27", "exclude": [ "192.0.2.192/30", "192.0.2.196/32" ] } }
22.2.5. Création d'un rattachement réseau supplémentaire avec l'opérateur de réseau de cluster
Le Cluster Network Operator (CNO) gère les définitions de réseaux supplémentaires. Lorsque vous spécifiez un réseau supplémentaire à créer, le CNO crée automatiquement l'objet NetworkAttachmentDefinition
.
Ne modifiez pas les objets NetworkAttachmentDefinition
gérés par le Cluster Network Operator. Cela risquerait de perturber le trafic sur votre réseau supplémentaire.
Conditions préalables
-
Installez le CLI OpenShift (
oc
). -
Connectez-vous en tant qu'utilisateur disposant des privilèges
cluster-admin
.
Procédure
Facultatif : Créez l'espace de noms pour les réseaux supplémentaires :
oc create namespace <namespace_name> $ oc create namespace <namespace_name>
Pour modifier la configuration du CNO, entrez la commande suivante :
$ oc edit networks.operator.openshift.io cluster
Modifiez le CR que vous êtes en train de créer en ajoutant la configuration pour le réseau supplémentaire que vous êtes en train de créer, comme dans l'exemple de CR suivant.
apiVersion: operator.openshift.io/v1 kind: Network metadata: name: cluster spec: # ... additionalNetworks: - name: tertiary-net namespace: namespace2 type: Raw rawCNIConfig: |- { "cniVersion": "0.3.1", "name": "tertiary-net", "type": "ipvlan", "master": "eth1", "mode": "l2", "ipam": { "type": "static", "addresses": [ { "address": "192.168.1.23/24" } ] } }
- Enregistrez vos modifications et quittez l'éditeur de texte pour valider vos modifications.
Vérification
Confirmez que le CNO a créé l'objet
NetworkAttachmentDefinition
en exécutant la commande suivante. Il peut y avoir un délai avant que le CNO ne crée l'objet.oc get network-attachment-definitions -n <namespace>
où :
<namespace>
- Spécifie l'espace de noms pour l'attachement réseau que vous avez ajouté à la configuration CNO.
Exemple de sortie
NAME AGE test-network-1 14m
22.2.6. Création d'une pièce jointe réseau supplémentaire par l'application d'un manifeste YAML
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 YAML avec votre configuration réseau supplémentaire, comme dans l'exemple suivant :
apiVersion: k8s.cni.cncf.io/v1 kind: NetworkAttachmentDefinition metadata: name: next-net spec: config: |- { "cniVersion": "0.3.1", "name": "work-network", "type": "host-device", "device": "eth1", "ipam": { "type": "dhcp" } }
Pour créer le réseau supplémentaire, entrez la commande suivante :
oc apply -f <file>.yaml
où :
<file>
- Spécifie le nom du fichier contenant le manifeste YAML.