15.6. La vérification


15.6.1. Déploiement d’une application d’échantillon

Afin de tester la règle IP de sortie, créez un service limité aux adresses IP de sortie que nous avons spécifiées. Cela simule un service externe qui attend un petit sous-ensemble d’adresses IP.

  1. Exécutez la commande echoserver pour reproduire une requête:

    $ oc -n default run demo-service --image=gcr.io/google_containers/echoserver:1.4
    Copy to Clipboard Toggle word wrap
  2. Exposez le pod en tant que service et limitez l’entrée aux adresses IP de sortie que vous avez spécifiées en exécutant la commande suivante:

    $ cat <<EOF | oc apply -f -
    apiVersion: v1
    kind: Service
    metadata:
      name: demo-service
      namespace: default
      annotations:
        service.beta.kubernetes.io/aws-load-balancer-scheme: "internal"
        service.beta.kubernetes.io/aws-load-balancer-internal: "true"
    spec:
      selector:
        run: demo-service
      ports:
        - port: 80
          targetPort: 8080
      type: LoadBalancer
      externalTrafficPolicy: Local
      # NOTE: this limits the source IPs that are allowed to connect to our service.  It
      #       is being used as part of this demo, restricting connectivity to our egress
      #       IP addresses only.
      # NOTE: these egress IPs are within the subnet range(s) in which my worker nodes
      #       are deployed.
      loadBalancerSourceRanges:
        - 10.10.100.254/32
        - 10.10.150.254/32
        - 10.10.200.254/32
        - 10.10.100.253/32
        - 10.10.150.253/32
        - 10.10.200.253/32
    EOF
    Copy to Clipboard Toggle word wrap
  3. Enregistrez le nom d’hôte de l’équilibreur de charge et enregistrez-le en tant que variable d’environnement en exécutant la commande suivante:

    $ export LOAD_BALANCER_HOSTNAME=$(oc get svc -n default demo-service -o json | jq -r '.status.loadBalancer.ingress[].hostname')
    Copy to Clipboard Toggle word wrap

15.6.2. Tester la sortie de l’espace de noms

  1. Démarrez un shell interactif pour tester la règle de sortie de l’espace de noms:

    $ oc run \
      demo-egress-ns \
      -it \
      --namespace=demo-egress-ns \
      --env=LOAD_BALANCER_HOSTNAME=$LOAD_BALANCER_HOSTNAME \
      --image=registry.access.redhat.com/ubi9/ubi -- \
      bash
    Copy to Clipboard Toggle word wrap
  2. Envoyez une demande à l’équilibreur de charge et assurez-vous que vous pouvez vous connecter avec succès:

    $ curl -s http://$LOAD_BALANCER_HOSTNAME
    Copy to Clipboard Toggle word wrap
  3. Consultez la sortie pour une connexion réussie:

    Note

    L’adresse client_address est l’adresse IP interne de l’équilibreur de charge et non votre adresse IP. Il est possible de vérifier que vous avez configuré correctement l’adresse client en vous connectant à votre service limité à .spec.loadBalancerSourceRanges.

    Exemple de sortie

    CLIENT VALUES:
    client_address=10.10.207.247
    command=GET
    real path=/
    query=nil
    request_version=1.1
    request_uri=http://internal-a3e61de18bfca4a53a94a208752b7263-148284314.us-east-1.elb.amazonaws.com:8080/
    
    SERVER VALUES:
    server_version=nginx: 1.10.0 - lua: 10001
    
    HEADERS RECEIVED:
    accept=*/*
    host=internal-a3e61de18bfca4a53a94a208752b7263-148284314.us-east-1.elb.amazonaws.com
    user-agent=curl/7.76.1
    BODY:
    -no body in request-
    Copy to Clipboard Toggle word wrap

  4. Sortez du pod en exécutant la commande suivante:

    $ exit
    Copy to Clipboard Toggle word wrap

15.6.3. Tester la sortie de la gousse

  1. Démarrez un shell interactif pour tester la règle de sortie de pod:

    $ oc run \
      demo-egress-pod \
      -it \
      --namespace=demo-egress-pod \
      --env=LOAD_BALANCER_HOSTNAME=$LOAD_BALANCER_HOSTNAME \
      --image=registry.access.redhat.com/ubi9/ubi -- \
      bash
    Copy to Clipboard Toggle word wrap
  2. Envoyez une demande à l’équilibreur de charge en exécutant la commande suivante:

    $ curl -s http://$LOAD_BALANCER_HOSTNAME
    Copy to Clipboard Toggle word wrap
  3. Consultez la sortie pour une connexion réussie:

    Note

    L’adresse client_address est l’adresse IP interne de l’équilibreur de charge et non votre adresse IP. Il est possible de vérifier que vous avez configuré correctement l’adresse client en vous connectant à votre service limité à .spec.loadBalancerSourceRanges.

    Exemple de sortie

    CLIENT VALUES:
    client_address=10.10.207.247
    command=GET
    real path=/
    query=nil
    request_version=1.1
    request_uri=http://internal-a3e61de18bfca4a53a94a208752b7263-148284314.us-east-1.elb.amazonaws.com:8080/
    
    SERVER VALUES:
    server_version=nginx: 1.10.0 - lua: 10001
    
    HEADERS RECEIVED:
    accept=*/*
    host=internal-a3e61de18bfca4a53a94a208752b7263-148284314.us-east-1.elb.amazonaws.com
    user-agent=curl/7.76.1
    BODY:
    -no body in request-
    Copy to Clipboard Toggle word wrap

  4. Sortez du pod en exécutant la commande suivante:

    $ exit
    Copy to Clipboard Toggle word wrap

15.6.4. Facultatif: Essais bloqués sortie

  1. Facultatif: Testez que le trafic est bloqué avec succès lorsque les règles de sortie ne s’appliquent pas en exécutant la commande suivante:

    $ oc run \
      demo-egress-pod-fail \
      -it \
      --namespace=demo-egress-pod \
      --env=LOAD_BALANCER_HOSTNAME=$LOAD_BALANCER_HOSTNAME \
      --image=registry.access.redhat.com/ubi9/ubi -- \
      bash
    Copy to Clipboard Toggle word wrap
  2. Envoyez une demande à l’équilibreur de charge en exécutant la commande suivante:

    $ curl -s http://$LOAD_BALANCER_HOSTNAME
    Copy to Clipboard Toggle word wrap
  3. En cas d’échec de la commande, egress est bloqué avec succès.
  4. Sortez du pod en exécutant la commande suivante:

    $ exit
    Copy to Clipboard Toggle word wrap
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