Cet article explique comment créer une charge de travail sur GKE sur AWS et l'exposer en interne à votre cluster.
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.
- À partir de votre répertoire
anthos-aws
, utilisezanthos-gke
pour basculer vers le contexte de votre cluster d'utilisateur.cd anthos-aws env HTTPS_PROXY=http://localhost:8118 \ anthos-gke aws clusters get-credentials CLUSTER_NAME
Remplacez CLUSTER_NAME par le nom de votre cluster d'utilisateur.
Vous pouvez effectuer ces étapes avec kubectl
ou avec la console Google Cloud si vous vous êtes authentifié à l'aide de Connect.
Si vous utilisez la console Google Cloud, passez à la section Lancer un déploiement NGINX.
Pour vous connecter à vos ressources GKE sur AWS, suivez les instructions ci-après. Indiquez si vous disposez d'un VPC AWS (ou d'une connexion directe à votre VPC) ou si vous avez créé un VPC dédié lors de la création de votre service de gestion.
VPC existant
Si vous disposez d'une connexion directe ou VPN à un VPC existant, omettez la ligne env HTTP_PROXY=http://localhost:8118
des commandes de cette rubrique.
VPC dédié
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 :
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
Pour ouvrir le tunnel, exécutez le script
bastion-tunnel.sh
. Le tunnel est transféré verslocalhost:8118
.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.
Ouvrez un nouveau terminal et accédez au répertoire
anthos-aws
.cd anthos-aws
Vérifiez que vous êtes en mesure de vous connecter au cluster à l'aide de
kubectl
.env HTTPS_PROXY=http://localhost:8118 \ kubectl cluster-info
La sortie inclut l'URL du serveur d'API du service de gestion.
Lancer un déploiement NGINX
Dans cette section, vous allez créer un déploiement du serveur Web NGINX nommé nginx-1
.
kubectl
Créez le déploiement à l'aide de
kubectl create
.env HTTPS_PROXY=http://localhost:8118 \ kubectl create deployment --image nginx nginx-1
Utilisez la commande
kubectl
pour obtenir l'état du déploiement. Notez le nom (NAME
) du pod.env HTTPS_PROXY=http://localhost:8118 \ kubectl get deployment
Console
Pour lancer un déploiement NGINX avec la console Google Cloud, procédez comme suit :
Accédez au menu GKE dans la console Google Cloud.
Cliquez sur Déployer.
Sous Modifier le conteneur, sélectionnez Image existante du conteneur pour choisir une image de conteneur disponible dans Container Registry. Dans le champ Chemin de l'image, indiquez l'image de conteneur que vous souhaitez utiliser et sa version. Pour ce guide de démarrage rapide, utilisez
nginx:latest
.Cliquez sur OK, puis sur Continuer. L'écran Configuration s'affiche.
Vous pouvez modifier le Nom d'application et l'Espace de noms Kubernetes de votre déploiement. Pour ce guide de démarrage rapide, vous pouvez utiliser comme nom d'application
nginx-1
et comme espace de nomsdefault
.Dans le menu déroulant Cluster, sélectionnez votre cluster d'utilisateur. Par défaut, votre premier cluster d'utilisateur est nommé
cluster-0
.Cliquez sur Déployer. GKE sur AWS lance votre déploiement NGINX. L'écran Détails du déploiement s'affiche.
Exposer vos pods
Cette section explique comment effectuer l'une des opérations suivantes :
Exposez votre déploiement en interne dans votre cluster et confirmez qu'il est disponible avec
kubectl port-forward
.Exposez votre déploiement depuis Google Cloud Console aux adresses autorisées par le groupe de sécurité de votre pool de nœuds.
kubectl
Exposez le port 80 du déploiement au cluster à l'aide de
kubectl expose
.env HTTPS_PROXY=http://localhost:8118 \ kubectl expose deployment nginx-1 --port=80
Le déploiement est désormais accessible depuis le cluster.
Transférez le port
80
du déploiement vers le port8080
sur votre ordinateur local aveckubectl port-forward
.env HTTPS_PROXY=http://localhost:8118 \ kubectl port-forward deployment/nginx-1 8080:80
Connectez-vous à
http://localhost:8080
aveccurl
ou avec votre navigateur Web. La page Web NGINX par défaut s'affiche.curl http://localhost:8080
Console
Accédez au menu "Charges de travail GKE" dans la console Google Cloud.
Sur la page Informations sur le déploiement, cliquez sur Exposer. L'écran Exposer un déploiement s'affiche.
Dans la section Mappage de port, conservez le port par défaut (
80
), puis cliquez sur OK.Comme Type de service, sélectionnez Équilibreur de charge. Pour en savoir plus sur les autres options, consultez la page Publishing services (ServiceTypes) (publication de services) de la documentation Kubernetes.
Cliquez sur Exposer. L'écran Informations sur le service s'affiche. GKE sur AWS crée un équilibreur de charge Elastic Load Balancer classique pour le service.
Cliquez sur le lien Points de terminaison externes. Si l'équilibreur de charge est prêt, la page Web NGINX par défaut s'affiche.
Afficher votre déploiement sur Google Cloud Console
Si votre cluster est connecté à Google Cloud Console, vous pouvez afficher votre déploiement sur la page des charges de travail de GKE. Pour afficher votre charge de travail, procédez comme suit :
Dans votre navigateur, consultez la page Charges de travail de Google Kubernetes Engine.
Accéder à la page des charges de travail de Google Kubernetes Engine
La liste des charges de travail s'affiche.
Cliquez sur le nom de votre charge de travail,
nginx-1
. L'écran Détails du déploiement s'affiche.Sur cette page, vous pouvez obtenir des informations sur votre déploiement, afficher et modifier la configuration YAML, et effectuer d'autres actions Kubernetes.
Pour en savoir plus sur les options disponibles sur cette page, consultez la page Déployer une application sans état dans la documentation de GKE.
Nettoyage
Pour supprimer votre déploiement NGINX, utilisez kubectl delete
ou Google Cloud Console.
kubectl
env HTTPS_PROXY=http://localhost:8118 \
kubectl delete service nginx-1 &&\
kubectl delete deployment nginx-1
Console
Accédez au menu des pages "Services et ressources Ingress" dans Google Cloud Console.
Recherchez votre service NGINX et cliquez sur son Nom. Par défaut, il est nommé
nginx-1-service
. L'écran Informations sur le service s'affiche.Cliquez sur
Supprimer et confirmez que vous souhaitez supprimer le service. GKE sur AWS supprime l'équilibreur de charge.Accédez à la page des charges de travail de Google Kubernetes Engine.
Accéder à la page des charges de travail de Google Kubernetes Engine
La liste des charges de travail s'affiche.
Cliquez sur le nom de votre charge de travail,
nginx-1
. L'écran Détails du déploiement s'affiche.Cliquez sur
Supprimer et confirmez que vous souhaitez supprimer le déploiement. GKE sur AWS supprime le déploiement.
Étape suivante
Créez un équilibreur de charge interne ou externe à l'aide de l'un des services suivants :
- Équilibreur de charge AWS classique et réseau
- Équilibreur de charge d'application AWS
- Entrée avec Anthos Service Mesh
Vous pouvez utiliser d'autres types de charges de travail Kubernetes avec GKE sur AWS. Consultez la documentation de GKE pour plus d'informations sur le déploiement de charges de travail.