Préparer la mise en réseau AWS

Pour configurer un équilibreur de charge externe avec Anthos clusters on 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 Anthos clusters on AWS, assurez-vous d'avoir effectué les tâches suivantes :

Dans Anthos clusters on 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 :

  1. À partir de votre répertoire anthos-aws, utilisez anthos-gke pour basculer vers le contexte de votre service de gestion.

    cd anthos-aws
    anthos-gke aws management get-credentials

  2. Obtenez l'ID du VPC AWS de votre cluster avec kubectl et 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}')
    
  3. Vérifiez le contenu des variables avec echo. La sortie ressemble à ceci : vpc-12345678abcdef0.

    echo $VPC_ID
    
  4. Enregistrez 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_ID
    

    La réponse inclut l'ID de votre cluster.

    gke-12345678
    
  5. Si vous avez installé des clusters Anthos sur AWS dans un VPC dédié, vous pouvez utiliser l'outil de ligne de commande aws pour 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

    Publique

     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 avec echo :

    echo $SUBNET_ID
    

    La réponse inclut votre ID de sous-réseau.

    subnet-012345678abcdef
    

    Privé

     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 avec echo :

    echo $SUBNET_ID
    

    La réponse inclut votre ID de sous-réseau.

    subnet-012345678abcdef
    

    Plusieurs 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 text
    

    Pour 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 text
    

    La réponse inclut les ID de vos sous-réseaux.

    subnet-012345678abcdef
    subnet-abcdef123456789
    subnet-123456789abcdef
    
  6. Ajoutez à 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=shared
    

    Plusieurs 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=shared
    

    Remplacez 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.