Amazon Elastic Kubernetes Service (Amazon EKS) est un service AWS Kubernetes géré qui permet de dimensionner, gérer et déployer des applications conteneurisées. Il s'exécute généralement dans le cloud public Amazon, mais peut également être déployé sur site. L'infrastructure de gestion Kubernetes d'Amazon EKS fonctionne sur plusieurs zones de disponibilité (AZ). AWS EKS est certifié conforme à Kubernetes, ce qui signifie que vous pouvez intégrer EKS à vos outils existants.
Dans cet article, vous apprendrez :
Les clusters EKS sont composés des principaux éléments suivants : un plan de contrôle et des nœuds de travail. Chaque cluster s’exécute dans son propre Virtual Private Cloud (VPC) entièrement géré.
Le plan de contrôle est composé de trois nœuds maîtres, chacun exécuté dans une zone de disponibilité différente afin de garantir AWS haute disponibilité. Le trafic entrant dirigé vers l'API Kubernetes transite par l'équilibreur de charge réseau (NLB) d'AWS.
Les nœuds de travail fonctionnent sur des instances Amazon EC2 situées dans un VPC, qui n'est pas géré par AWS. Vous pouvez contrôler et configurer le VPC alloué aux nœuds de travail. Vous pouvez utiliser un SSH pour donner accès à votre automatisation existante ou pour provisionner des nœuds de travail.
Il existe deux options de déploiement principales. Vous pouvez déployer un cluster pour chaque environnement ou application. Vous pouvez également définir des politiques de sécurité IAM et des espaces de noms Kubernetes afin de déployer un seul cluster pour plusieurs applications.
Pour limiter le trafic entre le plan de contrôle et un cluster, EKS fournit des stratégies réseau Amazon VPC. Seuls les clusters et comptes autorisés, définis par le contrôle d'accès basé sur les rôles (RBAC) de Kubernetes, peuvent consulter ou communiquer avec les composants du plan de contrôle.
Le diagramme suivant illustre le processus de déploiement d'un cluster sur EKS : vous demandez à EKS de provisionner un cluster, les ressources cloud sont provisionnées en arrière-plan, et vous pouvez ensuite vous connecter au cluster Kubernetes et exécuter vos charges de travail.
Source de l’image : AWS
L'architecture AWS EKS est composée des composants principaux suivants : clusters, nœuds et réseau.
Les clusters sont composés d'un plan de contrôle et de nœuds EKS.
Le plan de contrôle s'exécute sur un ensemble dédié d'instances EC2 dans un compte AWS géré par Amazon, et fournit un point de terminaison API accessible par vos applications. Il fonctionne en mode mono-locataire et est responsable du contrôle des nœuds maîtres Kubernetes, tels que l'API Server et etcd.
Les données sur etcd sont chiffrées à l'aide d'Amazon Key Management (KMS). Les nœuds maîtres Kubernetes sont répartis sur plusieurs AWS availability zones (AZ), et le trafic est géré par Elastic Load Balancer (ELB).
Les nœuds de travail Kubernetes s'exécutent sur des instances EC2 dans le compte AWS de votre organisation. Ils utilisent le point de terminaison API pour se connecter au plan de contrôle, via un fichier de certificat. Un certificat unique est utilisé pour chaque cluster.
Contenu associé : AWS Kubernetes Cluster : Configuration rapide avec EC2 et EKS
Les clusters Amazon EKS peuvent planifier les pods à l'aide de trois méthodes principales.
Un « nœud » dans EKS est une instance Amazon EC2 sur laquelle les pods Kubernetes peuvent être planifiés. Les pods se connectent au point de terminaison API du cluster EKS. Les nœuds sont organisés en groupes de nœuds. Toutes les instances EC2 d'un groupe de nœuds doivent avoir les mêmes caractéristiques :
Vous pouvez avoir plusieurs groupes de nœuds dans un cluster, chacun représentant un type d'instance différent ou des instances ayant un rôle différent.
Amazon EKS fournit des groupes de nœuds gérés avec une gestion automatisée du cycle de vie. Cela vous permet de créer, de mettre à jour ou d'arrêter automatiquement des nœuds en une seule opération. EKS utilise les dernières AMI Linux d'Amazon optimisées pour EKS. Lorsque vous terminez des nœuds, EKS les vide proprement pour garantir qu'il n'y a pas d'interruption de service. Vous pouvez facilement appliquer des étiquettes Kubernetes à l'ensemble d'un groupe de nœuds à des fins de gestion.
Les nœuds gérés sont exploités à l'aide de groupes EC2 Auto Scaling gérés par le service Amazon EKS. Vous pouvez définir dans quelles availability zones les groupes doivent s'exécuter. Il existe plusieurs façons de lancer des groupes de nœuds gérés, notamment via la console EKS, eksctl, l'interface CLI Amazon, l'API Amazon ou les outils d'automatisation Amazon, notamment CloudFormation.
Vous pouvez utiliser Amazon Fargate, un service de conteneurs sans serveur, pour exécuter des nœuds de travail sans avoir à gérer l'infrastructure serveur sous-jacente. Fargate vous facture uniquement les vCPU et la mémoire réellement utilisés. Il fournit davantage de ressources informatiques en fonction des besoins réels des nœuds de votre cluster.
Le schéma suivant illustre l'architecture réseau d'un cluster EKS :
Source de l’image : AWS
Un cluster Amazon EKS fonctionne dans un Virtual Private Cloud (VPC), un réseau privé sécurisé au sein d'un centre de données Amazon. EKS déploie toutes les ressources sur un sous-réseau existant dans un VPC que vous sélectionnez, dans une Amazon Region.
Interfaces réseau utilisées par le plan de contrôle EKS
Le plan de contrôle EKS fonctionne dans un VPC géré par Amazon. Il crée et gère les interfaces réseau dans votre compte pour chaque cluster EKS que vous créez. Les instances EC2 et Fargate utilisent ces interfaces réseau pour se connecter au plan de contrôle EKS.
Par défaut, EKS expose un point de terminaison public. Si vous souhaitez une sécurité supplémentaire pour votre cluster, vous pouvez activer un point de terminaison privé et/ou limiter l'accès à des adresses IP spécifiques. Vous pouvez configurer la connectivité entre les réseaux sur site ou d'autres VPC et le VPC utilisé par votre cluster EKS.
Chaque instance EC2 utilisée par le cluster EKS se trouve dans un sous-réseau. Vous avez deux options pour définir le réseau :
NetApp Cloud Volumes ONTAP, la solution de gestion du stockage de référence pour les entreprises, offre des services de gestion du stockage sécurisés et éprouvés sur AWS, Azure et Google Cloud. Cloud Volumes ONTAP prend en charge une capacité allant jusqu'à 368 To et prend en charge divers cas d'utilisation tels que les services de fichiers, les bases de données, DevOps ou toute autre charge de travail exigeante, avec un ensemble de fonctionnalités robustes comprenant la haute disponibilité, la protection des données, l'efficacité du stockage, l'intégration à Kubernetes, et plus encore.
En particulier, Cloud Volumes ONTAP prend en charge le provisionnement et la gestion des volumes persistants Kubernetes pour les workloads conteneurisés.