7.2. Configuration d’une adresse IP sortante


En tant qu’administrateur de cluster, vous pouvez configurer le plugin réseau OVN-Kubernetes Container Network Interface (CNI) pour attribuer une ou plusieurs adresses IP sortantes à un espace de noms, ou à des pods spécifiques dans un espace de noms.

Important

La configuration des IP de sortie n’est pas prise en charge pour ROSA avec des clusters HCP pour le moment.

Important

Dans un cluster d’infrastructure fourni par l’installateur, n’attribuez pas d’adresses IP de sortie au nœud d’infrastructure qui héberge déjà l’entrée VIP. La solution Red Hat Knowledgebase POD de l’espace de noms activé IP de sortie ne peut pas accéder à l’itinéraire OCP dans un cluster IPI lorsque l’IP de sortie est assigné au nœud infra qui héberge déjà le VIP entrant.

Le Red Hat OpenShift Service sur AWS egress IP fonctionnalité vous permet de vous assurer que le trafic d’un ou plusieurs pods dans un ou plusieurs espaces de noms dispose d’une adresse IP source cohérente pour les services en dehors du réseau de clusters.

À titre d’exemple, vous pourriez avoir un pod qui interroge périodiquement une base de données qui est hébergée sur un serveur en dehors de votre cluster. Afin d’appliquer les exigences d’accès pour le serveur, un dispositif de filtrage de paquets est configuré pour permettre le trafic uniquement à partir d’adresses IP spécifiques. Afin de vous assurer que vous pouvez autoriser de manière fiable l’accès au serveur à partir de cette pod spécifique, vous pouvez configurer une adresse IP de sortie spécifique pour le pod qui fait les demandes au serveur.

L’adresse IP de sortie attribuée à un espace de noms est différente d’un routeur de sortie, qui est utilisé pour envoyer du trafic vers des destinations spécifiques.

Dans ROSA avec des clusters HCP, les pods d’application et les gousses de routeur d’entrée s’exécutent sur le même nœud. Lorsque vous configurez une adresse IP sortante pour un projet d’application dans ce scénario, l’adresse IP n’est pas utilisée lorsque vous envoyez une demande à un itinéraire à partir du projet d’application.

Important

L’attribution d’adresses IP egress aux nœuds de plan de contrôle avec la fonction EgressIP n’est pas prise en charge.

Les exemples suivants illustrent l’annotation des nœuds sur plusieurs fournisseurs de cloud public. Les annotations sont indentées pour la lisibilité.

Exemple d’annotation cloud.network.openshift.io/egress-ipconfig sur AWS

cloud.network.openshift.io/egress-ipconfig: [
  {
    "interface":"eni-078d267045138e436",
    "ifaddr":{"ipv4":"10.0.128.0/18"},
    "capacity":{"ipv4":14,"ipv6":15}
  }
]
Copy to Clipboard Toggle word wrap

Les sections suivantes décrivent la capacité d’adresse IP pour les environnements de cloud public pris en charge à utiliser dans le calcul de votre capacité.

Dans AWS, les contraintes sur les attributions d’adresses IP dépendent du type d’instance configuré. Consultez les adresses IP par interface réseau par type d’instance pour plus d’informations.

7.2.1.2. Affectation des IP de sortie aux pods

Afin d’attribuer une ou plusieurs adresses IP de sortie à un espace de noms ou à des pods spécifiques dans un espace de noms, les conditions suivantes doivent être remplies:

  • Au moins un nœud dans votre cluster doit avoir l’étiquette k8s.ovn.org/egress-assignable: "".
  • Il existe un objet EgressIP qui définit une ou plusieurs adresses IP à utiliser comme adresse IP source pour le trafic qui quitte le cluster à partir de pods dans un espace de noms.
Important

Lorsque vous créez des objets EgressIP avant d’étiqueter n’importe quel nœud dans votre cluster pour l’affectation IP egress, Red Hat OpenShift Service sur AWS peut attribuer chaque adresse IP egress au premier nœud avec l’étiquette k8s.ovn.org/egress-assignable: "".

Afin de s’assurer que les adresses IP sortantes sont largement distribuées entre les nœuds du cluster, appliquez toujours l’étiquette aux nœuds que vous avez l’intention d’héberger les adresses IP sortantes avant de créer des objets EgressIP.

7.2.1.3. Affectation des IP de sortie aux nœuds

Lors de la création d’un objet EgressIP, les conditions suivantes s’appliquent aux nœuds qui sont étiquetés avec l’étiquette k8s.ovn.org/egress-assignable:

  • L’adresse IP de sortie n’est jamais attribuée à plus d’un nœud à la fois.
  • L’adresse IP sortante est également équilibrée entre les nœuds disponibles qui peuvent héberger l’adresse IP de sortie.
  • Lorsque le tableau spec.EgressIPs dans un objet EgressIP spécifie plus d’une adresse IP, les conditions suivantes s’appliquent:

    • Aucun nœud n’hébergera jamais plus d’une des adresses IP spécifiées.
    • Le trafic est à peu près égal entre les adresses IP spécifiées pour un espace de noms donné.
  • En cas d’indisponibilité d’un nœud, les adresses IP de sortie qui lui sont attribuées sont automatiquement réaffectées, sous réserve des conditions décrites précédemment.

Lorsqu’un pod correspond au sélecteur pour plusieurs objets EgressIP, il n’y a aucune garantie sur laquelle des adresses IP de sortie spécifiées dans les objets EgressIP sont attribuées en tant qu’adresse IP sortante du pod.

De plus, si un objet EgressIP spécifie plusieurs adresses IP egress, il n’y a aucune garantie sur laquelle des adresses IP egress pourraient être utilisées. À titre d’exemple, si un pod correspond à un sélecteur pour un objet EgressIP avec deux adresses IP sortantes, 10.10.20.1 et 10.10.20.2, soit pour chaque connexion TCP ou conversation UDP.

Le diagramme suivant représente une configuration d’adresse IP sortante. Le diagramme décrit quatre pods dans deux espaces de noms différents fonctionnant sur trois nœuds dans un cluster. Les nœuds sont attribués aux adresses IP du bloc 192.168.126.0/18 CIDR sur le réseau hôte.

Les deux Node 1 et Node 3 sont étiquetés avec k8s.ovn.org/egress-assignable: "" et donc disponible pour l’attribution des adresses IP egress.

Les lignes pointillées dans le diagramme représentent le flux de trafic de pod1, pod2, et pod3 voyageant à travers le réseau de la gousse pour sortir le cluster du Node 1 et du Node 3. Lorsqu’un service externe reçoit du trafic de l’un des pods sélectionnés par l’exemple d’objet EgressIP, l’adresse IP source est soit 192.168.126.10 ou 192.168.126.102. Le trafic est à peu près égal entre ces deux nœuds.

Les ressources suivantes du diagramme sont illustrées en détail:

Les objets d’espace de noms

Les espaces de noms sont définis dans le manifeste suivant:

Les objets d’espace de noms

apiVersion: v1
kind: Namespace
metadata:
  name: namespace1
  labels:
    env: prod
---
apiVersion: v1
kind: Namespace
metadata:
  name: namespace2
  labels:
    env: prod
Copy to Clipboard Toggle word wrap

EgressIP objet

L’objet EgressIP suivant décrit une configuration qui sélectionne tous les pods dans n’importe quel espace de noms avec l’étiquette env définie sur Prod. Les adresses IP de sortie pour les pods sélectionnés sont 192.168.126.10 et 192.168.126.102.

EgressIP objet

apiVersion: k8s.ovn.org/v1
kind: EgressIP
metadata:
  name: egressips-prod
spec:
  egressIPs:
  - 192.168.126.10
  - 192.168.126.102
  namespaceSelector:
    matchLabels:
      env: prod
status:
  items:
  - node: node1
    egressIP: 192.168.126.10
  - node: node3
    egressIP: 192.168.126.102
Copy to Clipboard Toggle word wrap

Dans le cas de la configuration de l’exemple précédent, Red Hat OpenShift Service sur AWS attribue les deux adresses IP aux nœuds disponibles. Le champ d’état indique si et où les adresses IP de sortie sont attribuées.

7.2.2. EgressIP objet

Le YAML suivant décrit l’API pour l’objet EgressIP. La portée de l’objet est à l’échelle du cluster; il n’est pas créé dans un espace de noms.

apiVersion: k8s.ovn.org/v1
kind: EgressIP
metadata:
  name: <name> 
1

spec:
  egressIPs: 
2

  - <ip_address>
  namespaceSelector: 
3

    ...
  podSelector: 
4

    ...
Copy to Clipboard Toggle word wrap
1
Le nom de l’objet EgressIPs.
2
Gamme d’une ou de plusieurs adresses IP.
3
Il y a un ou plusieurs sélecteurs pour que les espaces de noms associent les adresses IP sortantes avec.
4
Facultatif: Un ou plusieurs sélecteurs pour les pods dans les espaces de noms spécifiés pour associer les adresses IP de sortie avec. L’application de ces sélecteurs permet la sélection d’un sous-ensemble de pods dans un espace de noms.

Le YAML suivant décrit la strophe du sélecteur d’espace de noms:

Espace de noms sélecteur stanza

namespaceSelector: 
1

  matchLabels:
    <label_name>: <label_value>
Copy to Clipboard Toggle word wrap

1
Il y a une ou plusieurs règles correspondantes pour les espaces de noms. Lorsque plus d’une règle de correspondance est fournie, tous les espaces de noms correspondants sont sélectionnés.

Le YAML suivant décrit la strophe optionnelle pour le sélecteur de pod:

Gousse sélecteur stanza

podSelector: 
1

  matchLabels:
    <label_name>: <label_value>
Copy to Clipboard Toggle word wrap

1
Facultatif: Une ou plusieurs règles correspondantes pour les pods dans les espaces de noms qui correspondent aux règles de namespaceSelector spécifiées. Lorsque spécifié, seuls les pods qui correspondent sont sélectionnés. D’autres pods dans l’espace de noms ne sont pas sélectionnés.

Dans l’exemple suivant, l’objet EgressIP associe les adresses IP 192.168.126.11 et 192.168.126.102 avec des pods qui ont l’étiquette de l’application définie sur le Web et qui se trouvent dans les espaces de noms qui ont l’étiquette env définie pour produire:

Exemple d’objet EgressIP

apiVersion: k8s.ovn.org/v1
kind: EgressIP
metadata:
  name: egress-group1
spec:
  egressIPs:
  - 192.168.126.11
  - 192.168.126.102
  podSelector:
    matchLabels:
      app: web
  namespaceSelector:
    matchLabels:
      env: prod
Copy to Clipboard Toggle word wrap

Dans l’exemple suivant, l’objet EgressIP associe les adresses IP 192.168.127.30 et 192.168.127.40 à des pods qui n’ont pas l’étiquette d’environnement en cours de développement:

Exemple d’objet EgressIP

apiVersion: k8s.ovn.org/v1
kind: EgressIP
metadata:
  name: egress-group2
spec:
  egressIPs:
  - 192.168.127.30
  - 192.168.127.40
  namespaceSelector:
    matchExpressions:
    - key: environment
      operator: NotIn
      values:
      - development
Copy to Clipboard Toggle word wrap

Il est possible d’appliquer l’étiquette k8s.ovn.org/egress-assignable=" sur un nœud de votre cluster afin que Red Hat OpenShift Service sur AWS puisse attribuer une ou plusieurs adresses IP de sortie au nœud.

Conditions préalables

  • Installez le ROSA CLI (rosa).
  • Connectez-vous au cluster en tant qu’administrateur de cluster.

Procédure

  • Afin d’étiqueter un nœud afin qu’il puisse héberger une ou plusieurs adresses IP sortantes, entrez la commande suivante:

    $ rosa edit machinepool <machinepool_name> --cluster=<cluster_name> --labels "k8s.ovn.org/egress-assignable="
    Copy to Clipboard Toggle word wrap
    Important

    Cette commande remplace toutes les étiquettes de nœuds passionnantes sur votre machinepool. Incluez l’une des étiquettes souhaitées dans le champ --labels pour vous assurer que vos étiquettes de nœud existantes persistent.

7.2.4. Les prochaines étapes

Retour au début
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. Découvrez nos récentes mises à jour.

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 le Blog 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.

Theme

© 2025 Red Hat