Que fait Kubernetes et quand devriez-vous l'utiliser ?

0
175

Kubernetes est un outil qui gère toutes les pièces mobiles derrière l'exécution d'applications en cours d'exécution dans des conteneurs comme Docker. Cela rend la mise à l'échelle de votre application très facile, car votre infrastructure de serveur est séparée du code qui y est exécuté.

Que fait Kubernetes ?

< p>Kubernetes est souvent mentionné aux côtés de Docker, mais ils accomplissent chacun des tâches différentes. Docker regroupe les applications et toutes leurs dépendances dans des fichiers uniques, appelés images de conteneur, qui peuvent être exécutés sur un serveur sans aucune configuration manuelle. Le moteur Docker est similaire à une machine virtuelle, mais est beaucoup plus mince et plus performant, conçu simplement pour exécuter une seule application dans un environnement isolé.

Kubernetes est un moteur d'orchestration et fournit une plate-forme sur laquelle exécuter des images Docker. Il prend en charge l'utilisation d'images Docker, car elles sont de loin le format de conteneur le plus populaire. Les conteneurs permettent de distribuer votre code très facilement sans vous soucier de savoir si le serveur est configuré pour exécuter le code correctement.

Un serveur maître Kubernetes gérera un cluster de nœuds de travail. Ces nœuds de travail peuvent exécuter n'importe quel nombre de conteneurs, qui sont regroupés dans des pods Kubernetes. Le serveur maître gère le déploiement des pods sur les nœuds de travail et essaie de maintenir une configuration définie. Si votre application rencontre plus de trafic, Kubernetes peut provisionner plus de ressources, et si l'un de vos serveurs rencontre des problèmes, Kubernetes peut déplacer les pods de ce serveur vers le reste du réseau pendant que vous résolvez le problème.

Nœuds de travail Kubernetes, avec plusieurs pods exécutés dessus.

Mais si Kubernetes fournit de nombreuses fonctionnalités d'un système de plate-forme en tant que service (PaaS), il ne fournit aucun matériel. Kubernetes est un logiciel pur et open source. Les systèmes PaaS comme AWS EKS s'appuient sur Kubernetes et, dans de nombreux cas, lui offrent la possibilité de se provisionner davantage de ressources (auto-scaling).

Pourquoi utiliser Kubernetes ?

Kubernetes apporte tous les avantages de Docker et de la conteneurisation en général. Les conteneurs aident à garder votre code organisé et géré, avec toutes les dépendances au même endroit. Votre code fonctionnera de la même manière dans un environnement de développement et de test qu'en production, sans surprise.

Publicité

Les images Docker exécutées sur la plate-forme Kubernetes sont distinctes de la plate-forme elle-même et n'ont aucune idée qu'elles sont exécutées dans des pods Kubernetes. Ce découplage des applications de l'infrastructure rend Kubernetes extrêmement puissant en remplacement de votre cycle de déploiement existant. Vous n'aurez pas à vous soucier de savoir si votre code s'exécutera correctement sur vos serveurs.

Un cycle de développement rapide met plus de pression sur votre équipe Ops pour qu'elle se soucie de l'exécution réelle de votre code. Si vous rencontrez des problèmes pour gérer l'installation et la configuration de votre application sur vos serveurs chaque fois que votre code doit être mis à jour, Kubernetes peut accélérer cette opération.

Et si vous n'aimez vraiment pas configurer et gérer des serveurs, un service Kubernetes géré comme AWS EKS peut résoudre ce problème et prendre votre application “sans serveur.”

Comment démarrer ?

Kubernetes est indépendant des services, vous pouvez donc le configurer vous-même sur vos propres serveurs si vous le souhaitez. Cependant, Kubernetes est assez compliqué, il existe donc de nombreuses solutions clé en main des principaux fournisseurs de cloud qui utilisent leurs ressources pour alimenter vos nœuds de travail. Ils seront tous conformes à Kubernetes, vous pourrez donc basculer entre eux avec un minimum de problèmes.

Si vous souhaitez le configurer vous-même, vous pouvez le faire avec le kubeadm boîte à outils. Vous aurez besoin d'une machine principale sur laquelle exécuter kubeadm, qui contrôlera une ou plusieurs machines de travail exécutant kubelet. L'ordinateur maître gère le déploiement du conteneur sur les ordinateurs subordonnés. Vous pouvez lire leur guide de démarrage dans la documentation Kubernetes pour plus d'informations, mais préparez-vous pour une nuit de configuration.

Publicité

AWS EKS est la solution d'Amazon, qui peut exécuter des applications Kubernetes sur plusieurs zones de disponibilité AWS. EKS ne nécessite pas beaucoup de configuration ; tout ce que vous avez à faire est de provisionner de nouveaux nœuds. Vous payez 0,20 $ par heure (150 $ par mois) pour chaque cluster en cours d'exécution, ainsi que pour les ressources EC2 et EBS que vos nœuds de travail consomment.

Si vous n'avez pas besoin d'un cluster Kubernetes complet, mais que vous souhaitez tout de même exécuter des applications conteneurisées, vous pouvez utiliser Elastic Container Service (ECS) d'AWS. ECS exécute des conteneurs Docker et possède son propre système de mise à l'échelle.

Le service Azure Kubernetes (AKS) de Microsoft est un service Kubernetes managé qui s'intègre bien à un pipeline Azure, ce qui facilite le passage du code dans le contrôle des sources sur les conteneurs déployés sur votre cluster Kubernetes.

Google est le créateur original de Kubernetes. Il propose donc naturellement un service Kubernetes géré via Google Cloud Platform.