Utiliser un proxy HTTP

Ce document explique comment acheminer le trafic de GKE sur Azure via un proxy HTTP/HTTPS. Vous spécifiez la configuration du proxy lorsque vous créez un cluster.

Présentation

GKE sur Azure 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 et httpsProxy ne sont pas compatibles avec les URL commençant par https://. Vous devez utiliser http://. Les requêtes envoyées au port 443 utilisent HTTPS.
  • Vous devez définir des valeurs pour httpProxy, httpsProxy et noProxy.
  • 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 du 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 un coffre-fort de clés. Azure Key Vault doit être accessible à partir du réseau VNet de votre cluster.

Liste d'autorisation du proxy

Pour que GKE sur Azure se connecte 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 est utilisée si la valeur de httpsProxy est vide. "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
  1. Pour créer le fichier de configuration, créez un fichier JSON contenant les valeurs des clés httpProxy, noProxy et httpsProxy (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 passe
    • NO_PROXY_ADDRESSES : liste d'URL et de blocs CIDR séparés par une virgule, par exemple 10.0.0.0/16,http://example.com

    Enregistrez le fichier pour l'utiliser dans la section suivante.

  2. 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 exemple https://VAULT_NAME.vault.azure.net/secrets/SECRET_NAME/SECRET_VERSION.

Étapes suivantes