15.6. La vérification
15.6.1. Déploiement d’une application d’échantillon Copier lienLien copié sur presse-papiers!
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.
Exécutez la commande echoserver pour reproduire une requête:
$ oc -n default run demo-service --image=gcr.io/google_containers/echoserver:1.4Exposez 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 EOFEnregistrez 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')
15.6.2. Tester la sortie de l’espace de noms Copier lienLien copié sur presse-papiers!
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 -- \ bashEnvoyez une demande à l’équilibreur de charge et assurez-vous que vous pouvez vous connecter avec succès:
$ curl -s http://$LOAD_BALANCER_HOSTNAMEConsultez la sortie pour une connexion réussie:
NoteL’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-Sortez du pod en exécutant la commande suivante:
$ exit
15.6.3. Tester la sortie de la gousse Copier lienLien copié sur presse-papiers!
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 -- \ bashEnvoyez une demande à l’équilibreur de charge en exécutant la commande suivante:
$ curl -s http://$LOAD_BALANCER_HOSTNAMEConsultez la sortie pour une connexion réussie:
NoteL’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-Sortez du pod en exécutant la commande suivante:
$ exit
15.6.4. Facultatif: Essais bloqués sortie Copier lienLien copié sur presse-papiers!
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 -- \ bashEnvoyez une demande à l’équilibreur de charge en exécutant la commande suivante:
$ curl -s http://$LOAD_BALANCER_HOSTNAME- En cas d’échec de la commande, egress est bloqué avec succès.
Sortez du pod en exécutant la commande suivante:
$ exit