Pourquoi vouloir faire tourner GKE sur AWS ? La question est légitime, et les raisons varient d'une entreprise à l'autre. Quelques cas d'usage courants :
- tolérance aux pannes via une stratégie multi-cloud actif-actif
- utilisation des crédits fournisseurs tout en centralisant la gestion
- migration d'un cloud à un autre avec un temps d'arrêt minimal
- tirer parti de l'infrastructure et de l'expertise existantes tout en améliorant l'expérience k8s
- création de clusters plus rapide (5 à 7 minutes contre les 20 minutes ou plus habituelles d'EKS)
Quelle que soit la raison, voyons comment déployer Google Kubernetes Engine (GKE) sur AWS via Anthos GKE.
Premier article d'une série en trois parties consacrée à Anthos GKE de Google :
- Partie 1 : aperçu d'Anthos GKE sur AWS
- Partie 2 : guide d'installation pas à pas
- Partie 3 : workloads de cluster GKE en interaction avec les services AWS
Architecture

Google Anthos GKE sur Amazon Web Services
Node pools et autoscaling k8s simplifié sur AWS
EKS, le service Kubernetes managé d'Amazon, est en retrait sur de nombreuses fonctionnalités proposées par GKE, le service managé de Google. Au-delà de l'interface et de la simplification des mises à niveau du control plane et des worker nodes, l'autoscaling et les node pools de Google figurent parmi les fonctionnalités les plus appréciées. Plus besoin de faire de compromis.
apiVersion: multicloud.cluster.gke.io/v1
kind: AWSNodePool
metadata:
name: cluster-0-pool-0
spec:
clusterName: cluster-0
version: 1.16.9-gke.12
region: us-east-2
subnetID: subnet-XXXXXXXX
minNodeCount: 3
maxNodeCount: 5
instanceType: t3.medium
keyName: gke-XXXXXXX-keypair
iamInstanceProfile: gke-XXXXXXXX-nodepool
maxPodsPerNode: 100
securityGroupIDs:
- sg-XXXXXXXX
rootVolume:
sizeGiB: 10

Vue kubectl des nœuds GKE tournant sur des instances AWS
Interface en ligne de commande (CLI)
Anthos fournit une interface en ligne de commande (CLI) baptisée anthos-gke, dont les fonctionnalités sont proches de celles de la CLI gcloud, avec en plus la génération de scripts Terraform (que nous détaillerons dans la partie 2 de cette série). Cet outil permet de basculer entre le control plane et les clusters, comme illustré ci-dessous.

Control plane

Cluster de test (cluster-0)
Enterprise container management (ECM)
Pour centraliser l'administration de leurs clusters Kubernetes, les entreprises se tournaient traditionnellement vers des solutions ECM telles que Redhat OpenShift, VMWare Tanzu, Docker Enterprise ou Rancher Labs. Chacune présente toutefois ses limites ou impose un verrouillage fournisseur.

Gestion de clusters locaux et distants depuis une seule console Google Cloud
Avec Anthos de Google, vous pouvez enregistrer n'importe quel cluster Kubernetes en y installant un petit workload gke-connect-agent, qu'il soit on-premise, dans un autre cloud ou hébergé sur l'infrastructure de Google. Vous pouvez ainsi piloter et superviser n'importe quel cluster depuis la console Google Kubernetes Engine. Les clusters peuvent être autogérés ou managés dans le cloud, et inclure même certaines des solutions ECM citées plus haut.
Passons à la pratique… c'est aussi simple que 1, 2, 3.
1\. Déployer une application sur AWS depuis la console Google Cloud
Si la gestion de Kubernetes passe le plus souvent par l'outil en ligne de commande kubectl ou par un pipeline CI/CD, vous pouvez aussi déployer des workloads sur vos clusters GKE hébergés sur AWS directement depuis la console GCP (interface web).

Déploiement depuis le web

Vérification avec kubectl
2\. Exposer l'application en provisionnant automatiquement un ELB
Vous pouvez également exposer vos workloads : Anthos GKE provisionne et configure automatiquement une instance ELB AWS, rendant votre application accessible publiquement.

Exposition du workload et création de l'ELB
Une fois le service exposé, l'interface de GKE permet d'en consulter les détails — ici, un service de type LoadBalancer.

Écran de détail du service GKE
3\. Félicitations !
De retour dans la console AWS, vous retrouverez le load balancer provisionné par Anthos GKE.

Le load balancer apparaît dans les ressources AWS
En ouvrant l'URL du endpoint dans votre navigateur, vous constaterez qu'un serveur nginx (dans cet exemple) a bien été déployé sur votre cluster GKE hébergé sur AWS, puis exposé via un ELB en quelques clics seulement.

Et voilà ! Nginx est accessible publiquement dans le navigateur quelques secondes plus tard
Étapes suivantes
Dans le prochain article, nous détaillerons pas à pas la procédure d'installation d'Anthos GKE sur AWS.
Revenez par ici pour récupérer le lien dès sa mise en ligne, ou suivez-moi pour être tenu au courant de mes nouvelles publications. Vous pouvez également consulter notre site https://blog.doit-intl.com pour parcourir nos différents articles.