25.10. Déploiement d'un pod routeur egress en mode proxy DNS


En tant qu'administrateur de cluster, vous pouvez déployer un pod routeur de sortie configuré pour acheminer le trafic vers des noms DNS et des adresses IP spécifiques.

Définir la configuration d'un module de routeur de sortie dans l'objet Pod. Le fichier YAML suivant décrit les champs pour la configuration d'un module de routeur de sortie en mode DNS :

apiVersion: v1
kind: Pod
metadata:
  name: egress-1
  labels:
    name: egress-1
  annotations:
    pod.network.openshift.io/assign-macvlan: "true" 
1

spec:
  initContainers:
  - name: egress-router
    image: registry.redhat.io/openshift4/ose-egress-router
    securityContext:
      privileged: true
    env:
    - name: EGRESS_SOURCE 
2

      value: <egress-router>
    - name: EGRESS_GATEWAY 
3

      value: <egress-gateway>
    - name: EGRESS_ROUTER_MODE
      value: dns-proxy
  containers:
  - name: egress-router-pod
    image: registry.redhat.io/openshift4/ose-egress-dns-proxy
    securityContext:
      privileged: true
    env:
    - name: EGRESS_DNS_PROXY_DESTINATION 
4

      value: |-
        ...
    - name: EGRESS_DNS_PROXY_DEBUG 
5

      value: "1"
    ...
1
L'annotation indique à OpenShift Container Platform de créer une interface réseau macvlan sur le contrôleur d'interface réseau (NIC) primaire et de déplacer cette interface macvlan dans l'espace de noms réseau du pod. Vous devez inclure les guillemets autour de la valeur "true". Pour qu'OpenShift Container Platform crée l'interface macvlan sur une interface NIC différente, définissez la valeur d'annotation au nom de cette interface. Par exemple, eth1.
2
Adresse IP du réseau physique sur lequel se trouve le nœud, réservée à l'usage du routeur de sortie. Facultatif : vous pouvez inclure la longueur du sous-réseau, le suffixe /24, afin qu'une route appropriée vers le sous-réseau local soit définie. Si vous ne spécifiez pas de longueur de sous-réseau, le routeur de sortie ne peut accéder qu'à l'hôte spécifié par la variable EGRESS_GATEWAY et à aucun autre hôte du sous-réseau.
3
Même valeur que la passerelle par défaut utilisée par le nœud.
4
Spécifiez une liste d'une ou plusieurs destinations proxy.
5
En option, spécifiez la sortie du journal du proxy DNS vers : Spécifiez la sortie du journal du proxy DNS sur stdout.

25.10.2. Format de configuration de la destination de sortie

Lorsque le routeur est déployé en mode proxy DNS, vous spécifiez une liste de mappages de ports et de destinations. Une destination peut être une adresse IP ou un nom DNS.

Un pod de routeur de sortie prend en charge les formats suivants pour spécifier les mappages de port et de destination :

Port et adresse distante
Vous pouvez spécifier un port source et un hôte de destination en utilisant le format à deux champs : <port> <remote_address>.

L'hôte peut être une adresse IP ou un nom DNS. Si un nom DNS est fourni, la résolution DNS se fait au moment de l'exécution. Pour un hôte donné, le proxy se connecte au port source spécifié sur l'hôte de destination lorsqu'il se connecte à l'adresse IP de l'hôte de destination.

Exemple de paire de ports et d'adresses distantes

80 172.16.12.11
100 example.com

Port, adresse distante et port distant
Vous pouvez spécifier un port source, un hôte de destination et un port de destination en utilisant le format à trois champs : <port> <remote_address> <remote_port>.

Le format à trois champs se comporte de la même manière que la version à deux champs, à l'exception du fait que le port de destination peut être différent du port source.

Exemple de port, d'adresse distante et de port distant

8080 192.168.60.252 80
8443 web.example.com 443

En DNS proxy modeun pod routeur de sortie agit comme un proxy DNS pour les services basés sur TCP de sa propre adresse IP vers une ou plusieurs adresses IP de destination.

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 module de routeur de sortie.
  2. Créer un service pour le pod du routeur de sortie :

    1. Créez un fichier nommé egress-router-service.yaml qui contient le YAML suivant. Attribuez à spec.ports la liste des ports que vous avez définie précédemment pour la variable d'environnement EGRESS_DNS_PROXY_DESTINATION.

      apiVersion: v1
      kind: Service
      metadata:
        name: egress-dns-svc
      spec:
        ports:
          ...
        type: ClusterIP
        selector:
          name: egress-dns-proxy

      Par exemple :

      apiVersion: v1
      kind: Service
      metadata:
        name: egress-dns-svc
      spec:
        ports:
        - name: con1
          protocol: TCP
          port: 80
          targetPort: 80
        - name: con2
          protocol: TCP
          port: 100
          targetPort: 100
        type: ClusterIP
        selector:
          name: egress-dns-proxy
    2. Pour créer le service, entrez la commande suivante :

      $ oc create -f egress-router-service.yaml

      Les pods peuvent maintenant se connecter à ce service. Les connexions sont dirigées vers les ports correspondants du serveur externe, en utilisant l'adresse IP de sortie réservée.

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

© 2026 Red Hat
Retour au début