Utiliser un proxy avec GKE sur AWS

Cette rubrique explique comment acheminer le trafic du service de gestion de GKE sur GKE et de Connect via un proxy HTTP/HTTPS.

GKE sur AWS nécessite un accès Internet pour les raisons suivantes :

  • Le service de gestion enregistre les clusters d'utilisateurs auprès de Connect.
  • Les clusters d'utilisateurs exécutent l'agent Connect.
  • Tous les nœuds du service de gestion et des clusters d'utilisateurs téléchargent des images à partir de Container Registry.

Vous pouvez acheminer ce trafic via un proxy HTTP ou HTTPS. À compter de la version GKE sur AWS 1.8, vous pouvez configurer des paramètres de proxy individuels pour votre service de gestion et pour chacun de vos clusters. Pour en savoir plus sur la modification des paramètres de proxy, consultez la page Modifier les paramètres de proxy d'un cluster.

Vous déclarez les paramètres de proxy dans un fichier JSON référencé dans anthos-gke.yaml.

Prérequis

Avant de configurer GKE sur AWS pour utiliser un proxy, vous devez activer les points de terminaison AWS VPC, définir un groupe de sécurité pour le proxy et autoriser les connexions sortantes sur certains services Google Cloud.

Pour utiliser un proxy HTTP, vos clusters d'utilisateur doivent exécuter Kubernetes 1.17 ou version ultérieure.

Activer les points de terminaison VPC

Avant de configurer un proxy, vous devez créer des points de terminaison VPC pour votre installation GKE sur AWS. Les points de terminaison VPC permettent aux ressources des sous-réseaux privés d'accéder aux services AWS sans accès Internet public.

Le tableau suivant répertorie les services AWS pour lesquels GKE sur AWS requiert des points de terminaison VPC, ainsi que le type de point de terminaison et les groupes de sécurité pour chaque composant GKE sur AWS nécessitant l'accès au point de terminaison.

Service Type de point de terminaison Groupes de sécurité
Autoscaling Interface Gestion, plan de contrôle, pools de nœuds
EC2 Interface Gestion, plan de contrôle, pools de nœuds
Équilibrage de charge Interface Gestion, plan de contrôle, pools de nœuds
Service de gestion des clés Interface Gestion, plan de contrôle, pools de nœuds
S3 Passerelle Gestion, plan de contrôle, pools de nœuds
Service de jetons de sécurité (STS) Interface Gestion, plan de contrôle, pools de nœuds

Vous pouvez créer des points de terminaison à partir de la console VPC AWS. Les options que vous définissez lorsque vous créez des points de terminaison VPC dépendent de la configuration de votre VPC.

Définir un groupe de sécurité

Vos composants GKE sur AWS doivent pouvoir se connecter au serveur proxy. Créez ou recherchez un groupe de sécurité AWS qui autorise les connexions sortantes à votre serveur proxy. Le groupe de sécurité doit autoriser l'accès sortant de vos groupes de sécurité "Gestion", "Plan de contrôle" et "Pool de nœuds" à l'adresse et au port du proxy. Enregistrez l'ID de ce groupe de sécurité (par exemple, sg-12345678).

Type Protocole Depuis le port Au port Adresse
Sortie TCP Port du proxy Port du proxy Groupe de sécurité du proxy

Autoriser les connexions sortantes aux services Google Cloud

Pour que GKE sur AWS puisse se connecter aux services Google Cloud, le serveur proxy doit autoriser le trafic vers les domaines suivants :

  • gkeconnect.googleapis.com
  • gkehub.googleapis.com
  • oauth2.googleapis.com
  • storage.googleapis.com
  • www.googleapis.com
  • gcr.io
  • k8s.gcr.io
  • EC2-REGION.ec2.archive.ubuntu.com

Remplacez EC2-REGION par la région AWS EC2 dans laquelle votre installation GKE sur AWS est exécutée. Exemple : us-west-1.ec2.archive.ubuntu.com/.

Si vous utilisez Anthos Service Mesh avec Prometheus et Kiali, autorisez l'accès sortant des domaines suivants :

  • docker.io
  • quay.io

Créer le fichier JSON de configuration du proxy

Le fichier JSON de configuration du proxy contient un objet contenant trois paires clé/valeur, portant les noms de clé httpProxy, httpsProxy et noProxy. Les noms d'utilisateur et les mots de passe sont chiffrés à l'aide de votre clé AWS KMS avant de les appliquer au serveur.

{
  "httpProxy": "HTTP_PROXY",
  "httpsProxy": "HTTPS_PROXY",
  "noProxy": "NO_PROXY"
}

Remplacez l'élément suivant :

  • HTTP_PROXY par l'adresse du serveur proxy permettant d'acheminer les requêtes HTTP.
  • HTTPS_PROXY par le serveur proxy permettant d'acheminer les requêtes HTTPS.
  • NO_PROXY par une liste facultative d'adresses IP, de plages CIDR et de domaines pour lesquels le proxy n'est pas utilisé.

Pour en savoir plus, consultez la documentation de référence sur la configuration. Par exemple, la configuration suivante utilise un proxy à l'adresse 10.0.0.254 et exclut un certain nombre de sites.

{
  "httpProxy": "http://user:password@10.0.0.254:80",
  "httpsProxy": "http://user:password@10.0.0.254:443",
  "noProxy": "localhost,127.0.0.1,169.254.169.254,10.0.0.0/16,example.com"
}

Ajouter le proxy au fichier anthos-gke.yaml

Configurez le service AWSManagementService en procédant comme suit :

  1. Accédez au répertoire contenant votre configuration GKE sur AWS. Vous avez créé ce répertoire lors de l'installation du service de gestion.

    cd anthos-aws

  2. Ouvrez anthos-gke.yaml dans un éditeur de texte. Ajoutez une valeur pour spec.proxy, comme dans l'exemple suivant.

    apiVersion: multicloud.cluster.gke.io/v1
    kind: AWSManagementService
    metadata:
      name: management
    spec:
      version: aws-1.14.1-gke.0
      proxy: PROXY_JSON_FILE
      securityGroupIDs:
      - SECURITY_GROUP_ID
      ...
    

    Remplacez l'élément suivant :

    • PROXY_JSON_FILE par le chemin relatif du fichier de configuration JSON de votre proxy.
    • SECURITY_GROUP_ID par l'ID d'un groupe de sécurité disposant d'un accès au serveur proxy.

    Enregistrez le fichier.

  3. Exécutez anthos-gke aws management init pour générer un fichier anthos-gke.status.yaml avec une configuration supplémentaire. La commande init valide également l'objet AWSManagementService dans votre fichier anthos-gke.yaml.

    anthos-gke aws management init
    
  4. Exécutez anthos-gke aws management apply pour mettre à jour votre service de gestion sur AWS.

    anthos-gke aws management apply
    
  5. Ensuite, créez un cluster d'utilisateur. Incluez le groupe de sécurité du proxy dans les spec.controlPlane.securityGroupIDs et spec.securityGroupIDs des fichiers AWSCluster et AWSNodePool, respectivement. Le cluster a ensuite accès au proxy.

Documentation de référence sur la configuration

Champ Description Exemple 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" Oui
httpsProxy URL du proxy pour le trafic HTTPS chiffré. L'URL httpProxy sera utilisée si la valeur httpsProxy n'est pas indiquée. "http://user:password@10.101.16.31:80" Non
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. Un * persistant indique qu'aucun proxy ne doit être effectué. "1.2.3.4,10.0.0.0/16,example.com,.site.com" Non

Étape suivante

Pour en savoir plus sur la finalisation d'une installation GKE sur AWS, consultez les ressources suivantes :

Pour en savoir plus sur la modification des paramètres proxy de votre cluster, consultez la page suivante :