Utiliser un proxy HTTP
Ce document explique comment acheminer le trafic depuis GKE sur AWS via un proxy HTTP/HTTPS. Vous spécifiez la configuration du proxy lorsque vous créez un cluster.
Présentation
GKE sur AWS peut acheminer le trafic Internet sortant via un proxy pour les raisons suivantes :
- Enregistrer des clusters avec Google Cloud via Connect
- Exécuter l'agent Connect
- Télécharger des images à partir de Container Registry
Limites
- Les champs
httpProxy
ethttpsProxy
ne sont pas compatibles avec les URL commençant parhttps://
. Vous devez utiliserhttp://
. Les requêtes envoyées au port 443 utilisent HTTPS. - Vous devez définir des valeurs pour
httpProxy
,httpsProxy
etnoProxy
. - La configuration du proxy d'un cluster (l'ID du groupe de ressources et l'ID du secret) est immuable. Vous devez créer un nouveau cluster et un nouveau pool de nœuds pour modifier ces valeurs.
- Vous devrez peut-être ajouter des domaines, des adresses IP ou des plages CIDR supplémentaires au champ
noProxy
. Nous vous recommandons d'ajouter les CIDR de sous-réseau des plans de contrôle de votre cluster (les CIDR d'adresse de pod et les CIDR d'adresse de service sont ajoutés par défaut).
Prérequis
Cette section décrit les conditions préalables que vous devez appliquer avant d'utiliser un proxy.
Configuration d'Azure Key Vault
GKE sur Azure stocke les informations de configuration de proxy dans Azure Key Vault. Pour configurer un proxy avec GKE sur Azure, vous devez disposer des autorisations nécessaires pour créer un secret dans Azure Key Vault. Azure Key Vault doit être accessible à partir du réseau VNet de votre cluster.
Liste d'autorisation du proxy
Pour que GKE sur Azure puisse se connecter aux services Google Cloud, le serveur proxy doit autoriser le trafic vers des domaines Google et Microsoft spécifiques.
.azure.com
.gcr.io
cloudresourcemanager.googleapis.com
container.googleapis.com
gkeconnect.googleapis.com
gkehub.googleapis.com
oauth2.googleapis.com
securetoken.googleapis.com
storage.googleapis.com
sts.googleapis.com
www.googleapis.com
servicecontrol.googleapis.com
logging.googleapis.com
monitoring.googleapis.com
opsconfigmonitoring.googleapis.com
GCP_LOCATION-gkemulticloud.googleapis.com
Remplacez GCP_LOCATION
par la région Google Cloud dans laquelle se trouve votre cluster GKE Enterprise. Spécifiez us-west1
ou une autre région compatible.
Exigence de groupe de sécurité réseau de sous-réseau
Si vous utilisez des groupes de sécurité réseau (NSG, Network Security Groups) pour gérer le trafic vers vos sous-réseaux, vos règles NSG doivent autoriser le trafic TCP sortant vers les destinations suivantes :
- AzureCloud : TCP, ports 80 et 443
Pour en savoir plus sur l'utilisation de tags de service avec des NSG, consultez la section Tags de service Azure.
Créer un fichier de configuration de proxy
La configuration du proxy est stockée dans un secret Azure Key Vault en tant que chaîne JSON.
Vous pouvez transmettre cette configuration à l'outil de ligne de commande az
sous forme de fichier. La présente section explique comment créer ce fichier.
Le tableau suivant décrit le contenu de ce fichier.
Champ | Description | Exemples | Obligatoire |
---|---|---|---|
httpProxy |
URL du serveur proxy. La valeur doit inclure un nom d'hôte ou une adresse IP, et éventuellement un port, un nom d'utilisateur et un mot de passe. | "http://user:password@10.184.37.42:80" "10.184.37.42" |
Oui |
httpsProxy |
URL du proxy pour le trafic HTTPS chiffré. L'URL httpProxy sera utilisée si httpsProxy n'est pas fourni. | "http://10.101.16.31:80"
|
Oui |
noProxy |
Liste d'URL séparées par une virgule à exclure du proxy. Chaque valeur peut être une adresse IP, une plage CIDR, un nom de domaine ou le caractère astérisque (*). Les domaines spécifiés par un point (par exemple, ".google.com") indiquent qu'un sous-domaine est requis. Le fait d'utiliser un seul astérisque (*) permet d'ignorer toute configuration de proxy. | "1.2.3.4,10.0.0.0/16,example.com,.site.com" |
Oui |
Pour créer le fichier de configuration, créez un fichier JSON contenant les valeurs des clés
httpProxy
,noProxy
ethttpsProxy
(facultative).{ "httpProxy": "AUTHENTICATION_URL", "httpsProxy": "AUTHENTICATION_URL", "noProxy": "NO_PROXY_ADDRESSES" }
Remplacez les éléments suivants :
AUTHENTICATION_URL
: URL encodée contenant le nom d'utilisateur de proxy et le mot de passeNO_PROXY_ADDRESSES
: liste d'URL et de blocs CIDR séparés par une virgule, par exemple10.0.0.0/16,http://example.com
Enregistrez le fichier pour l'utiliser dans la section suivante.
Créez un secret avec ces données JSON en tant que secret dans Azure Key Vault en utilisant l'outil de ligne de commande
az
.az keyvault secret set --name SECRET_NAME \ --vault-name KEY_VAULT_NAME \ --file PROXY_CONFIGURATION_FILE
Remplacez les éléments suivants :
SECRET_NAME
: nom du nouveau secret.KEY_VAULT_NAME
: nom de votre Azure Key Vault.PROXY_CONFIGURATION_FILE
: chemin d'accès à votre fichier de configuration de proxy.Le résultat inclut le nom et le contenu du secret. Vous pouvez maintenant référencer ce secret lors de la création d'un cluster.
Créer un cluster utilisant un proxy
Pour configurer GKE sur Azure afin d'utiliser un proxy HTTP pour la connectivité sortante, procédez comme suit :
Suivez les étapes de la section Créer un cluster et un pool de nœuds en transmettant les options --proxy-resource-group-id
et --proxy-secret-id
.
gcloud container azure clusters create CLUSTER_NAME \
--proxy-resource-group-id=PROXY_RESOURCE_GROUP_ID \
--proxy-secret-id=PROXY_SECRET_ID
...
Remplacez les éléments suivants :
CLUSTER_NAME
: nom de votre cluster.PROXY_RESOURCE_GROUP_ID
: groupe de ressources qui héberge votre cluster.PROXY_SECRET_ID
: ID du secret contenant la configuration de votre proxy, par exemplehttps://VAULT_NAME.vault.azure.net/secrets/SECRET_NAME/SECRET_VERSION
.
Étape suivante
- Consultez les informations supplémentaires sur la création d'un cluster.