Pour configurer un équilibreur de charge externe avec GKE sur AWS, vous devez ajouter à votre VPC et à votre sous-réseau public un tag correspondant à votre ID de cluster. Si vous avez déjà ajouté un tag à votre VPC et à votre sous-réseau, passez à la section Activer l'entrée.
Avant de commencer
Avant de commencer à utiliser GKE sur AWS, veillez à effectuer les tâches suivantes :
- Remplissez les conditions préalables.
- Installez un service de gestion.
- Créez un cluster d'utilisateur.
Dans GKE sur AWS, les sous-réseaux qui contiennent des points de terminaison d'équilibreur de charge doivent disposer d'un tag. Le service ajoute automatiquement un tag à tous les sous-réseaux spécifiés dans le champ spec.Networking.ServiceLoadBalancerSubnetIDs de la ressource AWSCluster.
Si vous souhaitez ajouter des sous-réseaux supplémentaires à votre cluster d'utilisateur ou que vous devez réappliquer des tags à des sous-réseaux existants, procédez comme suit :
À partir de votre répertoire
anthos-aws, utilisezanthos-gkepour basculer vers le contexte de votre service de gestion.cd anthos-aws anthos-gke aws management get-credentials
Obtenez l'ID du VPC AWS de votre cluster avec
kubectlet stockez-le en tant que variable.export VPC_ID=$(\ env HTTPS_PROXY=http://localhost:8118 \ kubectl get awscluster cluster-0 -o jsonpath='{.spec.networking.vpcID}')Vérifiez le contenu des variables avec
echo. La sortie ressemble à ceci :vpc-12345678abcdef0.echo $VPC_IDEnregistrez votre ID de cluster dans une variable d'environnement.
export CLUSTER_ID=$(\ env HTTPS_PROXY=http://localhost:8118 \ kubectl get awscluster cluster-0 -o jsonpath='{.status.clusterID}')Vous pouvez vérifier la variable avec
echo:echo $CLUSTER_IDLa réponse inclut l'ID de votre cluster.
gke-12345678Si vous avez installé des clusters GKE sur AWS dans un VPC dédié, vous pouvez utiliser l'outil de ligne de commande
awspour récupérer l'ID de sous-réseau.Sélectionnez l'une des options suivantes :
- "Public", si vous souhaitez exposer des services sur votre sous-réseau public
- "Privé", si vous souhaitez exposer des services sur votre sous-réseau privé
"Plusieurs sous-réseaux", si vous souhaitez exposer des services sur plusieurs sous-réseaux
Public
export SUBNET_ID=$(aws ec2 describe-subnets \ --filters "Name=vpc-id,Values=$VPC_ID" "Name=tag:Name,Values=*public*" \ --query "Subnets[*].SubnetId" \ --output text)Le résultat est un objet qui contient l'ID de votre sous-réseau. Il ressemble à
subnet-1234abcdefg. Vous pouvez vérifier la variable avececho:echo $SUBNET_IDLa réponse inclut votre ID de sous-réseau.
subnet-012345678abcdefPrivé
export SUBNET_ID=$(aws ec2 describe-subnets \ --filters "Name=vpc-id,Values=$VPC_ID" "Name=tag:Name,Values=*private*" \ --query "Subnets[*].SubnetId" \ --output text)Le résultat est un objet qui contient l'ID de votre sous-réseau. Il ressemble à
subnet-1234abcdefg. Vous pouvez vérifier la variable avececho:echo $SUBNET_IDLa réponse inclut votre ID de sous-réseau.
subnet-012345678abcdefPlusieurs sous-réseaux
Si vous utilisez plusieurs sous-réseaux pour vos ressources AWSNodePool (par exemple, si vous utilisez plusieurs zones de disponibilité), vous devez ajouter individuellement des tags à vos ID de sous-réseau.
Récupérez la liste de vos ID de sous-réseau à l'aide de
aws ec2 describe-subnets.Pour obtenir la liste de tous les sous-réseaux publics, exécutez la commande suivante :
aws ec2 describe-subnets \ --filters "Name=vpc-id,Values=$VPC_ID" "Name=tag:Name,Values=*public*" \ --query "Subnets[*].SubnetId" \ --output textPour obtenir la liste de tous les sous-réseaux privés, exécutez la commande suivante :
aws ec2 describe-subnets \ --filters "Name=vpc-id,Values=$VPC_ID" "Name=tag:Name,Values=*private*" \ --query "Subnets[*].SubnetId" \ --output textLa réponse inclut les ID de vos sous-réseaux.
subnet-012345678abcdef subnet-abcdef123456789 subnet-123456789abcdefAjoutez à votre sous-réseau un tag correspondant à votre ID de cluster. Si vous avez plusieurs sous-réseaux, sélectionnez "Plusieurs sous-réseaux".
Sous-réseau unique
aws ec2 create-tags \ --resources $SUBNET_ID \ --tags Key=kubernetes.io/cluster/$CLUSTER_ID,Value=sharedPlusieurs sous-réseaux
Pour chacun de vos sous-réseaux, exécutez la commande suivante :
aws ec2 create-tags \ --resources subnet-ids \ --tags Key=kubernetes.io/cluster/$CLUSTER_ID,Value=sharedRemplacez subnet-ids par la liste de vos ID de sous-réseau, séparés par des espaces. Exemple :
subnet-012345678abcdef subnet-abcdef123456789 subnet-123456789abcdef.