Trois manières d’utiliser Kubernetes sur AWS
Il existe trois manières d’utiliser Kubernetes sur AWS :
- installer le produit de manière manuelle, ceci permet de complètement contrôler la configuration du cluster. Ceci est cependant très technique
- utiliser EKS, une solution managée par AWS
- utiliser Fargate, une solution de déploiement de conteneurs sans avoir à gérer un cluster.
Qu’est-ce que Kubernetes ?
Kubernetes (K8S) est une technologie open-source pour la gestion des applications conteneurisées. Kubernetes propose :
- Orchestration : Déploiement de conteneurs dans un cluster, en utilisant au mieux les ressources disponibles (serveurs, CPU, mémoire, etc.).
- Mise à jour : Déploiement de mises à jour de conteneurs en utilisant différentes stratégies, telles que le déploiement continu, le déploiement en blue-green/canari et le rollback automatisable.
- Auto-réparation : Surveillance des conteneurs et des serveurs et remplacement automatique de ceux qui sont défectueux.
- Évolutivité automatique : Augmentation ou diminution du nombre de conteneurs et du nombre de serveurs en fonction de la charge.
- Équilibrage de la charge : Répartition uniforme du trafic entre les conteneurs.
- Découverte de services : Routage automatique du trafic entre les conteneurs.
- Configuration et Secrets : Stockage protégé des configurations et des secrets.
Mais pourquoi faire fonctionner des Kubernetes sur AWS ?
AWS est une bonne solution pour exécuter des applications natives cloud. Cependant l’installation de Kubernetes sur AWS peut être complexe. Malgré cela, il y a de nombreuses raisons de faire tourner Kubernetes sur AWS :
- vouloir profiter du grand nombre de services que propose AWS.
- sortir des contraintes de verrouillage fournisseur. Kubernetes est complètement libre et il en est de même pour les nombreux outils de l’ecosysteme K8S. L’utilisation de Kubernetes permet d’accéder à une communauté ouverte.
- vouloir bénéficier de la portabilité - Kubernetes fonctionne partout : bare metal, cloud public, cloud privé. Kubernetes peut même fonctionner sur plusieurs types d’infrastructure en même temps.
- autoriser le déversement de charge. Avec Kubernetes, il est possible d’exécuter une partie du cluster dans le nuage cloud et laisser les workloads sensibles sur des infrastructures privées.
Service de conteneurs élastiques Amazon pour Kubernetes (EKS)
EKS est une solution qui permet de bénéficier de Kubernetes sur AWS sans devoir en gérer tous les aspects. Ce service EC2 managé enlève la plupart des tâches lourdes de la configuration manuelle de Kubernetes afin de faciliter l’utilisation de Kubernetes sur AWS. EKS propose :
- Un cluster Kubernetes managé et hautement disponible
- Des mises à jour de versions automatisées
- Une intégration facilitée avec les autres services AWS : CloudTrail, CloudWatch, ELB, IAM, VPC, PrivateLink.
Pour une installation facile de Kubernetes sur AWS, l’outil eksctl
est très utile. Il permet de facilement configurer un cluster EKS sur AWS.
AWS FARGATE
AWS Fargate est un service qui permet d’exécuter des conteneurs sans avoir à gérer des serveurs ou des clusters, et permet de se focaliser sur la construction des applications Kubernetes.
Fargate a été lancé en 2017. Cette solution combine la simplicité des solutions serverless avec la puissance de Kubernetes. Il est ainsi possible de déployer ses conteneurs Kubernetes et Fargate choisit automatiquement les bonnes instances et dimensionne le cluster en conséquence.
L’utilisation de Fargate permet également une forte isolation de sécurité des pods. Il n’y a donc pas à se soucier des aspects multi-tenancy.
AWS Fargate est aussi directement intégré dans Amazon CloudWatch. Ceci permet d’osculter les conteneurs sans avoir à configurer quoi que ce soit.
L’utilisation de AWS Fargate se déroule comme suit :
- Construction de l’image du conteneur
- Définition de la mémoire et des ressources nécessaires.
- Déploiement du conteneur.
- Paiement des ressources à l’utilisation.
- Comme pour les autres solutions AWS, seules les ressources nécessaires à l’exécution de l’applications sont facturées.