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
-
A partir de la console de clusterKubernetes. Cliquez sur Kubernetes dashboard
-
Passez à schematics-runtime dans la zone déroulante de sélection d'espace de nom.
-
Dans la section
Config and Storage, cliquez sur Config Maps pour afficher les mappes de l'espace de nomschematics-runtime.-
Cliquez sur la ressource configmap
schematics-runtime-job-configet sélectionnez l'icône en forme de crayon pour éditer le fichier YAML afin d'ajouter les instructions de proxyHTTPS/HTTP. -
Ajoutez des entrées de proxy
HTTPS/HTTPsous la propriétédatadans 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.
-
-
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-portsNetworkPolicy pour ajouter le port utilisé par votre proxyHTTPS/HTTP. - Ajoutez le port du proxy
HTTPS/HTTPà la propriété des ports.- ports: - protocol: TCP port: 3128
- Editez le fichier
-
Redémarrez le déploiement
schematics-runtimeet 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-jobet redémarrez le pod. - Sélectionnez la ressource
runtime-ansible-jobet redémarrez le pod.
- Sous la section
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-runtimeet exécutez la commandecurlsuivante pour vérifier que les variables d'environnement de proxy sont correctement définies dans le conteneur. -
Sous
Workloads > Pods, sélectionnez le premierjob-runtimeetExecdedans.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.