Pour fonctionner, les applications basées sur Kubernetes nécessitent souvent un certain nombre de ressources telles que les bases de données, les files d’attente de messages et des magasins d’objets. Selon le choix du cluster sur lequel vous souhaitez utiliser vos applications Kubernetes, il sera relativement aisé ou difficile de gérer ces applications.
Jusqu’à présent, si vous choisissiez d’utiliser Kubernetes avec la plateforme cloud Amazon Web Services (AWS), cela demandait beaucoup d’efforts pour le provisionnement et l’intégration des services AWS avec lez applications Kubernetes. Conscient de ce fait, Amazon a initié depuis 2018 un projet open source nommé AWS Controllers for Kubernetes (ACK) pour permettre aux administrateurs de créer facilement des applications Kubernetes évolutives qui utilisent les ressources des services AWS directement à partir de Kubernetes. Après avoir travaillé ce projet, l’équipe de AWS vient d’annoncer la disponibilité de la version developer preview de ACK.
Selon les mainteneurs du projet, ACK permet de tirer parti des services managés AWS pour les applications Kubernetes sans avoir besoin de définir des ressources en dehors du cluster ou d’exécuter des services qui fournissent des fonctionnalités de prise en charge telles que des bases de données ou des files d’attente de messages au sein du cluster. Il se présente donc comme une collection de définitions de ressources personnalisées et de contrôleurs Kubernetes qui fonctionnent ensemble pour étendre l’API Kubernetes et créer des ressources AWS au nom de votre cluster. En somme, il offre un moyen unifié et transparent de gérer les applications et leurs dépendances.
Chaque contrôleur gère des ressources personnalisées représentant les ressources d’API d’une API de service AWS unique. Par exemple, le contrôleur de services pour AWS Simple Storage Service (S3) gère les ressources personnalisées qui représentent les compartiments AWS S3, les clés, etc. Au lieu de se connecter à la console AWS ou d’utiliser l’outil AWS CLI pour interagir avec l’API de service AWS, les utilisateurs de Kubernetes peuvent installer un contrôleur pour un service AWS, puis créer, mettre à jour, lire et supprimer des ressources AWS à l’aide de l’API Kubernetes. Cela signifie qu’ils peuvent utiliser l’API Kubernetes pour décrire complètement à la fois leurs applications conteneurisées, en utilisant des ressources Kubernetes telles que Deployment et Service, ainsi que tous les services managés AWS dont ces applications dépendent.
Selon l’équipe de AWS, l’objectif principal de ACK est de fournir une interface cohérente pour AWS, quelle que soit l’API du service AWS. Un des exemples que l’on peut citer est le fait que les noms de champ et les identifiants sont normalisés et que les balises sont gérées de la même manière à travers les ressources AWS.
Dans le schéma ci-dessus:
- les équipes des services AWS génèrent et maintiennent une collection d’artefacts (binaires, images de conteneurs, graphiques Helm, etc.). Ces artefacts sont automatiquement dérivés des API des services AWS et représentent la logique métier de la gestion des ressources AWS à partir de Kubernetes ;;
- en tant qu’administrateur de cluster, vous sélectionnez un ou plusieurs contrôleurs ACK que vous souhaitez installer et configurer pour un cluster dont vous êtes responsable ;;
- en tant que développeur d’applications, vous créez des ressources personnalisées (Kubernetes) représentant des ressources AWS. Le contrôleur ACK respectif (installé à l’étape 2) gère lesdites ressources personnalisées et avec lui les ressources AWS sous-jacentes. En fonction de la ressource personnalisée définie à l’étape 3, le contrôleur crée, met à jour ou supprime les ressources AWS sous-jacentes à l’aide des API AWS.
Avec cette version developer preview, ACK prend déjà en charge les services AWS suivants :
- Amazon API Gateway V2
- Amazon DynamoDB
- Amazon ECR
- Amazon S3
- Amazon SNS
- Amazon SQS
L’équipe de AWS avance qu’il est déjà possible d’installer et d’utiliser ACK avec la documentation. Toutefois, vu que ce n’est qu’un aperçu technique des nouvelles fonctionnalités, les mécanismes d’installation destinés aux utilisateurs finaux ne sont pas encore en place.
Pour l’avenir, l’équipe en charge du projet prévoit de prendre en charge et d’activer autant de services AWS que possible, et de les intégrer avec une prise en charge complète de ACK. Plus précisément, dans les mois à venir, l’équipe de AWS entend se concentrer sur :
- Amazon Relational Database Service (RDS);
- Amazon ElastiCache ;;
- Amazon Elastic Kubernetes Service (EKS);
- Amazon Managed Streaming pour Apache Kafka (MSK).
Source : Amazon
Et vous ?
Quel est votre avis sur ACK ;? répond-il à vos attentes ;?
Avez-vous testé ACK ;? Quelles sont les fonctionnalités que vous aimez le plus ou le moins ;?
Voir aussi
AWS lance Bottlerocket, un système d’exploitation conçu pour héberger des conteneurs, en version developer preview
Kubernetes 1.16 apporte la disponibilité générale des définitions de ressources personnalisées ainsi que des améliorations côté Windows
Kubernetes 1.18 est disponible et apporte la prise en charge de ContainerD sous Windows, Canonical a déjà annoncé la prise en charge de cette version
Amazon Web Services devient membre Platinum de la Cloud Native Computing Foundation et rejoint Google, IBM, Microsoft et Alibaba