Configuration des agents Schematics pour l'utilisation d'un serveur proxy

De nombreux environnements n'autorisent pas la connectivité directe à l'Internet public, mais exigent que les connexions soient routées par une passerelle de proxy sécurisée. Schematics Les règles de configuration de l'agent autorisent l'utilisation d'un serveur proxy où l'accès direct à Internet n'est pas autorisé. Vous pouvez utiliser un proxy HTTP ou HTTPS.

La configuration du proxy doit être la même sur chaque hôte du cluster. Par conséquent, lorsque vous configurez le proxy ou que vous le modifiez, vous devez mettre à jour le déploiement, ConfigMap, et NetworkPolicy fichier de spécification YAML. Redémarrez ensuite le déploiement pour appliquer la configuration du serveur proxy.

Avant de commencer

Vérifiez que les conditions suivantes sont remplies avant de configurer l'accès au serveur proxy. L'exemple utilisé ici utilise un proxy squid sur le port 3128.

  • Un serveur proxy qui peut atteindre Google en utilisant HTTP ou HTTPS et qui est accessible depuis le cluster.
  • Adresse IP et port du serveur proxy, par exemple, http://53.25.191.193:3128
  • L'outil de ligne de commande curl est disponible sur les pods de cluster.

Configuration d'un serveur proxy

  1. A partir de la console de clusterKubernetes. Cliquez sur Kubernetes dashboard

  2. Passez à schematics-runtime dans la zone déroulante de sélection d'espace de nom.

  3. Dans la section Config and Storage, cliquez sur Config Maps pour afficher les mappes de l'espace de nom schematics-runtime.

    • Cliquez sur la ressource configmap schematics-runtime-job-config et sélectionnez l'icône en forme de crayon pour éditer le fichier YAML afin d'ajouter les instructions de proxy HTTPS/HTTP.

    • Ajoutez des entrées de proxy HTTPS/HTTP sous la propriété data dans la section inférieure du fichier:

      data:
        HTTPS_PROXY: http://<ipaddress>:<port>
        HTTP_PROXY: http://<ipaddress>:<port>
      
    • Cliquez sur Mettre à jour pour sauvegarder la mappe de configuration et confirmer que les nouvelles entrées de proxy s'affichent dans la liste de fichiers.

    • Répétez cette opération pour la ressource configmap schematics-runtime-ansible-job-config.

  4. Dans la section Cluster, cliquez sur Network Policies pour afficher les règles de l'espace de nom schematics-runtime.

    • Editez le fichier whitelist-runtime-egress-gen-ports NetworkPolicy pour ajouter le port utilisé par votre proxy HTTPS/HTTP.
    • Ajoutez le port du proxy HTTPS/HTTP à la propriété des ports.
      - ports:
        - protocol: TCP
          port: 3128
      
  5. Redémarrez le déploiement schematics-runtime et vérifiez que tous les pods sont en cours d'exécution.

    • Sous la section Workloads, cliquez sur Déploiements pour afficher les déploiements en cours pour l'espace de nom schematics-runtime.
    • Sélectionnez la ressource runtime-job et redémarrez le pod.
    • Sélectionnez la ressource runtime-ansible-job et redémarrez le pod.

Vérification de l'accès au serveur proxy

Vérifiez que les pods de cluster peuvent accéder à Internet via le serveur proxy.

  • Connectez-vous au pod schematics-runtime et exécutez la commande curl suivante pour vérifier que les variables d'environnement de proxy sont correctement définies dans le conteneur.

  • Sous Workloads > Pods, sélectionnez le premier job-runtime et Exec dedans.

    curl --head https://www.google.com
    

Si le proxy fonctionne pour HTTPS, la commande curl renvoie un 200 OK HTTP response.

Si la commande curl ne parvient pas à se connecter, vérifiez que le proxy est accessible à partir du cluster et qu'il peut acheminer l'accès au site Web cible. Utilisez la commande curl suivante avec l'option proxy pour vérifier que le proxy est accessible.

```curl {: codeblock}
curl --proxy http://<ipaddress>:<port> --head https://www.google.com
```

Si le site Web n'est pas accessible à l'aide du paramètre proxy, vérifiez que la règle de sortie réseau pour le cluster est correctement définie et qu'il existe un accès réseau au proxy.

Si le site Web est accessible à l'aide du paramètre proxy, vérifiez que la mappe de configuration a été mise à jour correctement et que les variables d'environnement du proxy HTTPS/HTTP sont définies en exécutant la commande env.

Les variables d'environnement HTTP_PROXY et HTTPS_PROXY doivent être répertoriées dans la sortie. Si elle n'est pas répertoriée, vérifiez à nouveau les définitions de mappe de configuration.