Une nouvelle version de GKE sur AWS a été publiée le 2 novembre. Consultez les notes de version pour plus d'informations.

Installer le service de gestion

Un service de gestion permet de créer, mettre à jour et supprimer des clusters GKE sur AWS. Cet article explique comment créer un service de gestion dans un cloud privé virtuel (VPC) AWS dédié. Si vous disposez déjà d'un VPC, consultez plutôt la section Intégrer à l'infrastructure existante.

Avant de commencer

Avant de commencer à utiliser GKE sur AWS, veillez à effectuer les tâches suivantes :

  • Remplissez les conditions préalables.
  • Authentifiez-vous à l'aide de l'outil de ligne de commande gcloud.
    gcloud auth login &&\
          gcloud auth application-default login

Valeurs dont vous avez besoin

Pour suivre cet article, vous devez disposer des éléments suivants parmi les prérequis :

  • ARN de clé KMS
  • Clés de compte de service Google Cloud
  • Projet Google Cloud
  • Outils de ligne de commande aws, terraform et anthos-gke installés et configurés.
  • Région AWS et zones de disponibilité dans lesquelles GKE sur AWS crée votre cluster de gestion.

Configurer votre service de gestion

Configurez votre service de gestion GKE sur AWS avec un fichier YAML. Le fichier ressemble à une configuration de ressource personnalisée Kubernetes, mais il ne représente pas une ressource.

  1. Créez un répertoire vide pour votre configuration GKE sur AWS et accédez à ce répertoire.

    mkdir anthos-aws && \
    cd anthos-aws
    
  2. Créez un fichier nommé anthos-gke.yaml dans un éditeur de texte. Collez le contenu suivant dans le fichier.

     apiVersion: multicloud.cluster.gke.io/v1
     kind: AWSManagementService
     metadata:
       name: management
     spec:
       version: ANTHOS_CLI_VERSION
       region: AWS_REGION
       authentication:
         awsIAM:
           adminIdentityARNs:
           - ADMIN_AWS_IAM_ARN
       kmsKeyARN: KMS_KEY_ARN
       databaseEncryption:
         kmsKeyARN: DATABASE_KMS_KEY_ARN
       googleCloud:
         projectID: GCP_PROJECT_ID
         serviceAccountKeys:
           managementService: MANAGEMENT_KEY_PATH
           connectAgent: HUB_KEY_PATH
           node: NODE_KEY_PATH
       dedicatedVPC:
         vpcCIDRBlock: VPC_CIDR_BLOCK
         availabilityZones:
         - ZONE_1
         - ZONE_2
         - ZONE_3
         privateSubnetCIDRBlocks:
         - PRIVATE_CIDR_BLOCK_1
         - PRIVATE_CIDR_BLOCK_2
         - PRIVATE_CIDR_BLOCK_3
         publicSubnetCIDRBlocks:
         - PUBLIC_CIDR_BLOCK_1
         - PUBLIC_CIDR_BLOCK_2
         - PUBLIC_CIDR_BLOCK_3
       # Optional
       bastionHost:
         allowedSSHCIDRBlocks:
         - SSH_CIDR_BLOCK
       proxy: PROXY_JSON_FILE # optional
    

    Remplacez les valeurs suivantes :

    • ANTHOS_CLI_VERSION par la version de votre outil anthos-gke. Pour obtenir votre version, exécutez anthos-gke version.

    • AWS_REGION par la région AWS dans laquelle exécuter votre cluster.

    • ADMIN_AWS_IAM_ARN par le nom de ressource Amazon (ARN) de l'utilisateur disposant des autorisations AWS IAM pour créer un service de gestion. Pour obtenir l'ARN de l'utilisateur authentifié auprès de l'outil aws, exécutez aws sts get-caller-identity.

    • KMS_KEY_ARN par le nom de ressource Amazon de la clé KMS AWS qui sécurise les données de votre service de gestion lors de la création.
      Il ne s'agit pas de l'ARN d'alias. Si vous ne disposez pas de nom ARN, exécutez aws kms list-keys pour obtenir l'ARN de clé.

    • DATABASE_KMS_KEY_ARN par le nom de ressource Amazon de la clé KMS AWS qui sécurise les bases de données etcd de votre service de gestion.
      Il ne s'agit pas de l'ARN d'alias. Si vous ne disposez pas de nom ARN, exécutez aws kms list-keys pour obtenir l'ARN de clé.

    • GCP_PROJECT_ID par le projet Google Cloud qui héberge votre environnement Anthos.

    • MANAGEMENT_KEY_PATH par l'emplacement de votre clé de compte de service de gestion Google Cloud.

    • HUB_KEY_PATH par l'emplacement de la clé de votre compte de service Google Cloud Connect.

    • NODE_KEY_PATH par l'emplacement de la clé de compte de service de votre nœud GKE sur AWS.

    • VPC_CIDR_BLOCK par la plage totale d'adresses IP CIDR pour le VPC AWS créé par anthos-gke. Par exemple, 10.0.0.0/16. Pour en savoir plus, consultez la page Principes de base des réseaux VPC dans la documentation AWS.

    • ZONE_1, ZONE_2 et ZONE_3 par les zones de disponibilité AWS EC2 dans lesquelles vous souhaitez créer des nœuds et des plans de contrôle. GKE sur AWS crée des sous-réseaux dans ces zones. Lorsque vous utilisez anthos-gke pour générer une configuration pour un cluster d'utilisateur, GKE sur AWS crée des plans de contrôle et des pools de nœuds dans ces zones de disponibilité.
      Si vous souhaitez utiliser anthos-gke pour créer un cluster d'utilisateur dans une zone, vous pouvez supprimer ZONE_2 et ZONE_3.

    • PRIVATE_CIDR_BLOCK_1, PRIVATE_CIDR_BLOCK_2 et PRIVATE_CIDR_BLOCK_3, par le bloc CIDR de votre sous-réseau privé. Les composants GKE sur AWS tels que le service de gestion s'exécutent dans le sous-réseau privé. Ce sous-réseau doit se trouver dans la plage CIDR du VPC spécifiée dans vpcCIDRBlock. Vous avez besoin d'un sous-réseau pour chaque zone de disponibilité. Par exemple, 10.0.1.0/24.

    • PUBLIC_CIDR_BLOCK_1, PUBLIC_CIDR_BLOCK_2 et PUBLIC_CIDR_BLOCK_3 par les blocs CIDR de votre sous-réseau public. Vous avez besoin d'un sous-réseau pour chaque zone de disponibilité. Le sous-réseau public expose des services de cluster, tels que des équilibreurs de charge, aux groupes de sécurité et aux plages d'adresses spécifiés dans les LCA de réseau et les groupes de sécurité AWS. Par exemple, 10.0.100.0/24.

    • SSH_CIDR_BLOCK par le bloc CIDR qui autorise l'accès SSH entrant à votre hôte bastion. Par exemple, 203.0.113.0/24. Si vous souhaitez autoriser les connexions SSH depuis n'importe quelle adresse IP, utilisez 0.0.0.0/0.

    • (Facultatif) PROXY_JSON_FILE par le chemin relatif du fichier de configuration du proxy. Si vous n'utilisez pas de proxy, supprimez cette ligne.

  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 créer le service de gestion sur AWS.

    anthos-gke aws management apply
    

    L'exécution de la commande anthos-gke aws management apply peut prendre jusqu'à dix minutes. Une fois l'exécution de la commande terminée, votre service de gestion s'exécute sur AWS.

Se connecter au service de gestion

Ensuite, utilisez anthos-gke pour vous connecter et vous authentifier auprès de votre service de gestion GKE sur AWS.

Lorsque vous créez un service de gestion à l'aide des paramètres par défaut, le plan de contrôle possède une adresse IP privée. Cette adresse IP n'est pas accessible depuis l'extérieur du VPC AWS. Pour accéder à vos ressources GKE sur AWS, suivez les instructions ci-dessous.

Lorsque vous créez un service de gestion dans un VPC dédié, GKE sur AWS inclut un hôte bastion placé dans un sous-réseau public.

Pour vous connecter à votre service de gestion, procédez comme suit :

  1. Utilisez terraform pour générer un script qui ouvre un tunnel SSH vers l'hôte bastion.

    terraform output bastion_tunnel > bastion-tunnel.sh
    chmod 755 bastion-tunnel.sh
    

    Terraform crée le script bastion-tunnel.sh qui référence la clé SSH de l'hôte bastion à ~/.ssh/anthos-gke.

  2. Pour ouvrir le tunnel, exécutez le script bastion-tunnel.sh. Le tunnel passe de localhost:8118 à l'hôte bastion.

    Pour ouvrir un tunnel vers l'hôte bastion, exécutez la commande suivante :

    ./bastion-tunnel.sh -N
    

    Les messages en provenance du tunnel SSH s'affichent dans cette fenêtre. Lorsque vous êtes prêt à fermer la connexion, arrêtez le processus à l'aide du raccourci Ctrl+C ou en fermant la fenêtre.

  3. Ouvrez un nouveau terminal et accédez au répertoire contenant votre configuration GKE sur AWS.

  4. Générez un fichier kubeconfig pour l'authentification. Utilisez anthos-gke pour ajouter des identifiants à votre configuration stockée dans ~/.kube/config.

    anthos-gke aws management get-credentials
    
  5. Vérifiez que vous êtes en mesure de vous connecter au service de gestion à l'aide de kubectl.

    env HTTP_PROXY=http://localhost:8118 \
    kubectl cluster-info
    

    La sortie inclut l'URL du serveur d'API du service de gestion.

Étapes suivantes