Fermer

avril 12, 2019

Kubernetes et AWS EKS Service: notions de base


Tout d'abord, qu'est-ce que Kubernetes?

En termes simples, il s'agit d'un outil open source permettant de gérer des environnements conteneurisés de grande envergure, des déploiements, une mise à l'échelle automatique, etc. Il a été créé à l'origine par les ingénieurs de Google pour gérer leurs milliards d'applications. conteneurs et processus d'auto-déploiement. Un peu plus tard, il a été confié à la CNCF (Cloud Native Computing Foundation), qui fait partie de la Linux Foundation, pour d’autres améliorations.

Kubernetes est un système qui gère toutes les ressources d’un cluster et aide les développeurs et les administrateurs système à gestion des applications, des déploiements et des conteneurs.

Bien que les sites Web et les configurations clés de Kubernetes soient bien documentés sur son site Web officiel, la configuration et la gestion des clusters Kubernetes sur leur environnement local n’est pas toujours une tâche facile.

Comprenant la complexité des configurations et de la gestion de Kubernetes, certains fournisseurs de cloud connus, tels que Google Cloud Platform, Amazon Web Services (AWS) et Microsoft Azure Cloud, ont lancé leurs propres services de cloud computing pour gérer les clusters Kubernetes. Ces services sont très utiles pour la gestion des configurations Kubernetes et des environnements de cluster.

Concepts de base de Kubernetes

Comme indiqué dans le diagramme ci-dessus, noeuds, volumes de données, les services, les déploiements, les pods et les conteneurs sont des éléments importants d'un cluster Kubernetes.

  • Nœud: Un nœud est un ordinateur subordonné (dans une instance AWS Elastic Compute Cloud (EC2)) de clusters Kubernetes qui exécute vos conteneurs d'application. .
  • Conteneur: Un conteneur est un ensemble logiciel léger comprenant les paquetages et dépendances nécessaires à l'exécution de votre application.
  • Pod: Un pod est l'une des unités les plus essentielles gérées par Kubernetes. Il gère un groupe d'un ou plusieurs conteneurs déployés sur le nœud de travail d'un cluster. Les clusters Kubernetes peuvent avoir plusieurs pods et chaque pod a une adresse IP unique pour la connectivité.
  • Service: En configurant un service dans votre cluster, vous pouvez exposer l'accès aux conteneurs d'applications s'exécutant sur différents pods de votre cluster OU l'accès. vers vos conteneurs d’application depuis l’extérieur de votre réseau de grappes.
  • Déploiement: Le déploiement est un ensemble d’instructions permettant de créer des pods et d’autres éléments obligatoires dans votre application. Les fichiers de déploiement ressemblent au fichier de composition d'un environnement Docker. Vous pouvez gérer le nombre spécifique de réplicas de pod en spécifiant des instructions dans les déploiements. Le déploiement continue à surveiller le cluster pour maintenir les spécifications définies pour le pod. Même si vous supprimez manuellement un pod, le déploiement configuré prend soin de créer immédiatement un nouveau pod comme défini dans le déploiement.
  • Volume: Un volume Kubernetes est une unité de stockage pouvant être configurée pour fournir un accès à votre application. les conteneurs fonctionnant à l'intérieur des modules de cluster. Ces volumes peuvent être attachés à un volume de nœuds de travail, à un stockage en nuage comme EBS (Amazon Elastic Block Store), à ​​un système de fichiers Elastic (EFS), etc. conformément à la liste des services de stockage pris en charge par Kubernetes, que vous pouvez trouver sur le site . Site Web de Kubernetes .
  • Kubectl : Kubectl est une interface de ligne de commande permettant de gérer votre environnement de grappes. Ce peut être n'importe quel système en dehors de l'environnement du cluster. Il vous suffit d'installer des packages et des configurations de base pour communiquer avec votre cluster. Une fois votre système configuré, vous pouvez effectuer toutes les opérations de votre cluster à partir de la ligne de commande kubectl.

Qu'est-ce qu'Amazon EKS?

Amazon EKS est un service de conteneur élastique introduit par AWS pour gérer les clusters Kubernetes, serveurs de nœuds. , mise à l'échelle automatique et configurations réseau requises sur la plate-forme cloud AWS.

Il n'est pas nécessaire d'installer ni de configurer de paquet sur aucun serveur physique ou cloud pour la configuration du cluster Kubernetes. Le service EKS prend en charge toutes les installations de paquet Kubernetes requises, les opérations de correction et la gestion de la haute disponibilité du cluster.

Pour maintenir la haute disponibilité d'un cluster, AWS gère les serveurs maîtres Kubernetes sur trois zones de disponibilité différentes.

modèle d'EKS:

  1. Provisionnez un cluster EKS sur le compte AWS.
  2. Une fois l'EKS créé, déployez les noeuds de travail EC2 pour votre environnement de cluster à l'aide des scripts de formation en nuage fournis par AWS.
  3. Connectez l'EC2. nœuds avec le cluster EKS Kubernetes créé à partir de votre système configuré par kubectl.
  4. Une fois les nœuds EC2 connectés à EKS Kubernetes, votre environnement de cluster sera prêt à déployer et gérer vos applications sur le cluster Kubernetes.

Architecture de base de Environnement Kubernetes avec service AWS EKS:

Note: L'architecture peut varier en fonction de vos besoins et configurations.

Conclusion:

Kubernetes est une option très appropriée pour gérer d’énormes plates-formes d’orchestration en conteneur avec une utilisation minimale des ressources. Il dispose d'un algorithme pour sélectionner un nœud spécifique du cluster pour le déploiement de conteneurs à l'aide de certaines règles, ce qui facilite l'utilisation plus efficace des ressources du serveur. Il comporte également de nombreuses autres fonctionnalités telles que la mise à l'échelle automatique, la réparation automatique, les déploiements et les restaurations automatisés et les réplications qui permettent de automatiser le déploiement et la gestion des conteneurs.

Grâce à Amazon EKS, nous pouvons créer un cluster Kubernetes en quelques étapes simples. sans vous soucier de l'installation et de la gestion du matériel. Il gère le serveur API et la base de données ECD sur trois zones de disponibilité différentes pour assurer une haute disponibilité. Outre Kubernetes, EKS dispose également de nombreuses fonctionnalités pour la gestion des clusters, telles que l'intégration de la gestion des accès d'identités, la prise en charge de l'équilibreur de charge, Amazon EBS pour la gestion des volumes de clusters, les enregistrements DNS de Route 53, la mise à l'échelle automatique des nœuds, etc.

sur les groupes de Kubernetes et de Amazon EKS sur leurs sites officiels.




Source link