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.
25.10.1. Spécification du pod du routeur de sortie pour le mode DNS Copier lienLien copié sur presse-papiers!
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"
spec:
initContainers:
- name: egress-router
image: registry.redhat.io/openshift4/ose-egress-router
securityContext:
privileged: true
env:
- name: EGRESS_SOURCE
value: <egress-router>
- name: EGRESS_GATEWAY
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
value: |-
...
- name: EGRESS_DNS_PROXY_DEBUG
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 variableEGRESS_GATEWAYet à 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 Copier lienLien copié sur presse-papiers!
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
25.10.3. Déploiement d'un pod routeur egress en mode proxy DNS Copier lienLien copié sur presse-papiers!
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
- Créer un module de routeur de sortie.
Créer un service pour le pod du routeur de sortie :
Créez un fichier nommé
egress-router-service.yamlqui contient le YAML suivant. Attribuez àspec.portsla liste des ports que vous avez définie précédemment pour la variable d'environnementEGRESS_DNS_PROXY_DESTINATION.apiVersion: v1 kind: Service metadata: name: egress-dns-svc spec: ports: ... type: ClusterIP selector: name: egress-dns-proxyPar 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-proxyPour créer le service, entrez la commande suivante :
$ oc create -f egress-router-service.yamlLes 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.