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 :
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
Ouvrez
anthos-gke.yaml
dans un éditeur de texte. Ajoutez une valeur pourspec.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.
Exécutez
anthos-gke aws management init
pour générer un fichieranthos-gke.status.yaml
avec une configuration supplémentaire. La commandeinit
valide également l'objetAWSManagementService
dans votre fichieranthos-gke.yaml
.anthos-gke aws management init
Exécutez
anthos-gke aws management apply
pour mettre à jour votre service de gestion sur AWS.anthos-gke aws management apply
Ensuite, créez un cluster d'utilisateur. Incluez le groupe de sécurité du proxy dans les
spec.controlPlane.securityGroupIDs
etspec.securityGroupIDs
des fichiersAWSCluster
etAWSNodePool
, 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 :
Si vous devez créer un VPC AWS dédié, consultez la section Installer un service de gestion.
Si vous disposez d'un VPC AWS existant, consultez la page Intégrer à l'infrastructure existante.
Pour en savoir plus sur la modification des paramètres proxy de votre cluster, consultez la page suivante :