Recherche de site Web

Principes de base de Kubernetes : comprendre les pods, les services et les déploiements


Lorsque l’on commence à utiliser Kubernetes, le jargon à lui seul peut être à l’origine d’une grande courbe d’apprentissage. Des mots tels que pods, services, déploiements, clusters, applications, nœuds, espaces de noms et bien d’autres sont tous constamment utilisés, et il peut être impossible pour un nouveau venu de suivre ce qui est dit. Sans oublier qu’après avoir appris la terminologie de base, c’est un tout autre sujet d’apprendre comment tous ces composants s’emboîtent pour servir un cluster Kubernetes.

Dans ce tutoriel, nous allons passer en revue toutes les bases de Kubernetes pour vous aider à comprendre les différents composants et comment ils fonctionnent ensemble. Si vous cherchez à commencer à lancer un cluster Kubernetes sur votre système Linux, c’est un excellent point de départ avant de plonger dans votre projet. Une fois que vous avez les bases, le reste n’est pas si difficile à comprendre.

Dans ce tutoriel, vous allez apprendre :

  • Comprendre les bases de Kubernetes et son jargon pertinent

Qu’est-ce que Kubernetes ?

Kubernetes est un logiciel d’orchestration de conteneurs qui nous permet de déployer, de gérer et de faire évoluer des applications conteneurisées. Il a gagné en popularité ces dernières années et est devenu le moyen le plus viable de faire évoluer les applications horizontalement et verticalement, surpassant même les méthodes traditionnelles telles que la virtualisation. Kubernetes a été développé et utilisé à l’origine par Google, et a depuis été repris par la Cloud Native Computing Foundation (CNCF).

Qu’est-ce que la conteneurisation ?

Le déploiement de la conteneurisation est similaire à la virtualisation, sauf qu’il n’a pas besoin d’un système d’exploitation distinct pour s’exécuter. L’application, sa configuration et toutes ses dépendances sont regroupées dans un conteneur léger qui peut être porté sur n’importe quel système. Le principal avantage de la conteneurisation par rapport à la virtualisation traditionnelle est que les conteneurs sont beaucoup plus légers. En dehors de ce point, ils fonctionnent de la même manière dans le concept, mais la conteneurisation présente de nombreux autres avantages inhérents en raison de sa légèreté. Par exemple, ils sont très faciles à mettre à l’échelle, à créer une redondance, à équilibrer la charge et à disposer de nombreuses autres fonctionnalités.

LE SAVIEZ-VOUS ?
Il n’est pas strictement nécessaire d’utiliser Docker avec Kubernetes, bien que la plupart des clusters utilisent effectivement cette combinaison de logiciels. Il existe d’autres outils de conteneurisation disponibles, tels que Containerd, qui peuvent également compléter Kubernetes en tant que couche de conteneurisation nécessaire dont il a besoin pour exécuter des images de conteneur.

Que sont les nœuds ?

Les nœuds sont les machines physiques ou virtuelles au sein du cluster Kubernetes. Il existe deux types de nœuds : les nœuds maîtres et les nœuds de travail. En général, un cluster Kubernetes n’aura qu’un seul nœud maître (ou quelques nœuds supplémentaires, pour la redondance), mais aura de nombreux nœuds de travail. À partir du nœud maître, nous sommes en mesure de gérer l’ensemble du cluster. À l’inverse, les nœuds de travail hébergent les pods, qui exécutent nos applications conteneurisées.

Que sont les pods ?

Les pods fournissent un environnement isolé dans lequel vos applications conteneurisées peuvent s’exécuter. Un pod dispose de sa propre adresse IP afin que les conteneurs qui s’y exécutent puissent être accessibles sur le réseau, ainsi que de son propre espace de stockage. Un pod est déployé sur un nœud de travail, qui peut héberger plusieurs pods simultanément. Les pods qui se trouvent dans le même espace de noms (nous y reviendrons plus tard) peuvent communiquer entre eux sur le réseau.

Qu’est-ce qu’un service ?

Un service fonctionne avec des pods pour fournir une interface permettant d’accéder aux pods en externe. Un bon exemple serait un serveur web. Le conteneur du serveur Web s’exécuterait au sein d’un pod, et le service serait la couche qui donne au pod la connectivité avec le monde extérieur. Mais les services offrent également d’autres fonctionnalités telles que l’équilibrage de charge.

Qu’est-ce qu’un déploiement ?

Les déploiements sont essentiellement un ensemble de règles permettant de contrôler le comportement de vos espaces. À l’aide des déploiements, vous pouvez configurer les paramètres de vos espaces, tels que le nombre de réplicas à conserver. Les déploiements sont essentiels pour faire évoluer les applications vers le haut ou vers le bas. À l’aide de la syntaxe YAML, vous pouvez configurer toute une série de paramètres à suivre pour vos pods, puis apporter les modifications à votre cluster via le déploiement.

Que sont les espaces de noms ?

Chaque espace de noms est un cluster virtuel distinct et, par défaut, les ressources des différents espaces de noms sont bien isolées les unes des autres et ne peuvent pas communiquer entre elles, mais cela peut être modifié en modifiant diverses stratégies réseau. Les espaces de noms sont également pratiques lorsque vous disposez d’un grand environnement géré par plusieurs utilisateurs ou équipes, et que chacun a besoin de son propre « espace » pour les ressources qu’il est chargé de gérer et d’administrer. Il s’agit d’une bien meilleure solution que de créer de nombreux clusters Kubernetes simplement pour faciliter différents groupes de services ou de déploiements, et pour isoler les équipes dans leur propre espace.

Réflexions finales

Dans ce tutoriel, nous avons passé en revue les bases de Kubernetes et de ses composants pour comprendre comment ils fonctionnent de manière cohérente en tant que cluster sur un système Linux. Nous n’avons fait qu’effleurer la surface de Kubernetes ici, mais cela vous donnera les éléments de base essentiels dont vous avez besoin pour comprendre des concepts plus avancés. J’aimerais vraiment avoir un dictionnaire Kubernetes comme celui-ci lorsque je commence, car cela évite beaucoup de confusion et de maux de tête aux nouveaux utilisateurs.

Articles connexes: