Introduction à Kubernetes | Qu'est-ce que Kubernetes
Apprendre les concepts de base de Kubernetes
Introduction
Bienvenue dans le cours d'introduction à Kubernetes. Kubernetes, également connu sous le nom de k8s ou kube, est l'outil d'orchestration de conteneurs le plus populaire du secteur. Il est un produit fabriqué par Google. Ce didacticiel Kubernetes se compose d'une série d'articles sur Kubernetes. Dans la première partie, nous discuterons de ce qu'est Kubernetes et des concepts de base de Kubernetes.
Ce cours s’adresse aux débutants absolus, vous n’avez besoin d’aucune connaissance préalable pour apprendre cette technologie. Nous vous présenterons toutes les bases de Kubernetes pour vous faire comprendre les concepts.
Avant de commencer avec Kubernetes, voyons les bases de Docker et des conteneurs.
Qu’est-ce que Docker ?
Docker vous permet de regrouper et d'exécuter une application dans un conteneur, qui est un environnement vaguement isolé. En raison de l'isolation et de la sécurité, vous pouvez exploiter plusieurs conteneurs sur un seul hôte.
Pour exécuter plusieurs conteneurs sur le même système d'exploitation, Docker exploite l'isolation des ressources dans le noyau du système d'exploitation. Habituellement, les gens comparent Docker aux machines virtuelles (VM).
Les machines virtuelles, quant à elles, contiennent un système d'exploitation complet avec du code exécutable au-dessus d'une couche d'abstraction de ressources matérielles physiques.
Qu'est-ce qu'un conteneur ?
Une image de conteneur est un progiciel prêt à l'emploi qui comprend tout ce dont un programme a besoin pour s'exécuter, y compris le code et les environnements d'exécution dont il a besoin, les bibliothèques d'applications et système, ainsi que les valeurs par défaut pour tous les éléments importants. paramètres.
Les applications sont découplées de l'architecture hôte sous-jacente à l'aide de conteneurs. Comme le montre le diagramme suivant, nous pouvons avoir plusieurs conteneurs au-dessus du moteur Docker en utilisant la machine sous-jacente. Cela facilite le déploiement dans une variété de scénarios de système d’exploitation ou de cloud.
Figure 1
Les conteneurs aident les entreprises à se moderniser en facilitant la mise à l'échelle et le déploiement d'applications. Cependant, en créant un environnement d'infrastructure complètement nouveau, les conteneurs ont présenté des problèmes et une complexité supplémentaires.
Des milliers d'instances de conteneurs sont déployées quotidiennement par des organisations de logiciels, grandes et petites, ce qui pose un défi d'évolutivité à gérer. Alors, comment font-ils pour y parvenir ?
Qu’est-ce que l’orchestration de conteneurs ?
- L'orchestration des conteneurs concerne la gestion des cycles de vie des conteneurs, en particulier dans les grands environnements dynamiques. L'orchestration de conteneurs est utilisée par les équipes logicielles pour contrôler et automatiser diverses tâches de gestion des conteneurs.
- L'orchestration de conteneurs fonctionne dans n'importe quel contexte où des conteneurs sont utilisés. Il peut vous aider à déployer le même programme sur plusieurs environnements sans avoir à le réécrire.
Outils d'orchestration de conteneurs
Les technologies d'orchestration de conteneurs offrent un cadre pour contrôler l'architecture des conteneurs et des microservices. La gestion du cycle de vie des conteneurs peut être réalisée avec une variété de solutions d'orchestration de conteneurs. Kubernetes, Docker Swarm et Apache Mesos sont trois solutions/outils courants.
Docker Swarm est l'outil natif de Docker, très simple à installer et à configurer. Kubernetes nécessite un certain nombre d'interventions manuelles pour configurer ses composants tels que etcd, flannel et docker engine.
Kubernetes domine le secteur en raison de ses divers avantages et fonctionnalités par rapport à d'autres outils.
Qu’est-ce que Kubernetes ?
Kubernetes est une technologie d'orchestration de conteneurs open source développée à l'origine par Google pour automatiser le déploiement, la mise à l'échelle et l'administration d'applications conteneurisées.
Kubernetes simplifie le déploiement et la gestion des applications d'architecture de microservices. Pour ce faire, il forme une couche d'abstraction au-dessus d'un cluster, permettant aux équipes de développement de déployer des applications en douceur tandis que Kubernetes gère principalement les tâches suivantes :
- Contrôler et gérer l'utilisation des ressources par une application.
- Demandes d’équilibrage de charge entre de nombreuses instances d’une application automatiquement.
- Surveillance de l'utilisation des ressources et des limites des ressources pour empêcher automatiquement les applications de consommer des quantités excessives de ressources et les reprendre.
- Si les ressources d'un hôte sont épuisées ou si l'hôte meurt, le transfert d'une instance d'application d'un hôte à un autre est une option viable.
- Lorsqu'un nouvel hôte est ajouté au cluster, des ressources supplémentaires sont automatiquement rendues accessibles.
Pourquoi le marché recommande Kubernetes
Kubernetes, la première initiative Cloud Native Cloud Foundation (CNCF) et une fondation de Google, est le projet logiciel open source qui connaît la croissance la plus rapide après Linux.
Pourquoi tant d’entreprises s’appuient-elles aujourd’hui sur Kubernetes pour répondre à leurs besoins d’orchestration de conteneurs ? Il y a plusieurs raisons à cela :
- Portabilité et flexibilité : Kubernetes est extrêmement adaptable, car il peut fonctionner sur un large éventail de paramètres d'infrastructure et d'environnement. La plupart des autres orchestrateurs n'ont pas cette flexibilité ; ils sont verrouillés dans des environnements d'exécution ou des infrastructures spécifiques.
- Open Source : La CNCF est en charge de Kubernetes, qui est un projet entièrement open source et piloté par la communauté. Elle compte un certain nombre d'entreprises sponsors importantes, mais aucune entreprise ne « possède » la plateforme ou n'a le contrôle exclusif de son évolution.
- Compatibilité multi-cloud : Kubernetes peut héberger des charges de travail sur un seul cloud ainsi que des charges de travail réparties sur plusieurs cloud. Kubernetes peut également faire évoluer son environnement sans effort d'un cloud à l'autre. Alors que d'autres orchestrateurs peuvent prendre en charge des architectures multi-cloud, Kubernetes va sans doute au-delà en termes d'adaptabilité multi-cloud.
- Marker Leader : Presque tout le monde utilise Kubernetes. Selon une enquête REDHAT, Kubernetes est largement utilisé par les clients (88%), notamment en situation de production (74%).
Architecture Kubernetes
Kubernetes est un exemple de système distribué bien architecturé. Il considère que toutes les machines d’un cluster font partie d’un seul pool de ressources.
Kubernetes, comme tout autre système distribué sophistiqué, comporte deux couches : les nœuds principaux et les nœuds de travail.
Le Nœud principal ou Nœud maître se compose des applications du plan de contrôle et des nœuds de travail. Un cluster Kubernetes est formé d'un ensemble de nœuds principaux et de nœuds de travail.
Figure 2
Kubernetes introduit de nombreux termes pour décrire la structure de votre application. Nous passerons en revue chaque trimestre.
Composants Kubernetes
Les nœuds maître/chef et les nœuds de travail sont constitués de leurs propres composants qui garantissent le bon fonctionnement de l'orchestration.
Avion de contrôle
Le plan de contrôle est l’endroit où les administrateurs et les utilisateurs gèrent les différents nœuds. Il reçoit des commandes via des appels HTTP ou en se connectant au système et en exécutant des scripts de ligne de commande. Il régule la manière dont Kubernetes interagit avec vos applications, comme son nom l'indique.
Serveur API
Le serveur API donne au cluster Kubernetes une interface REST. Toutes les activités sur les pods, services et autres objets sont effectuées par programme en discutant avec les points de terminaison fournis.
Planificateur
Le planificateur est chargé d'attribuer les tâches aux différents nœuds. Il surveille la capacité des ressources et garantit que les performances d'un nœud de travail restent dans des limites acceptables.
Responsable contrôleur
Le gestionnaire de contrôleur Kubernetes est un service qui gère les boucles de contrôle principales de Kubernetes. Il est responsable de s'assurer que l'état partagé du cluster fonctionne correctement.
Etcd
Kubernetes utilise etcd, un magasin clé-valeur distribué, pour partager des informations sur l'état global d'un cluster.
Nœud
Un nœud est une machine, physique ou virtuelle, sur laquelle s'exécutent les POD. Le plan de contrôle gère chaque nœud d'un cluster et le nœud se compose des services requis pour exécuter les POD.
Gousses
Un pod Kubernetes est un ensemble de conteneurs que Kubernetes gère à la plus petite échelle. Les pods ont une adresse IP unique attribuée à tous les conteneurs du pod. La mémoire et les ressources de stockage des conteneurs d'un pod sont partagées. Un Pod peut également avoir un seul conteneur lorsque l'application a un seul processus.
Kubelet
Kubelet est un composant de nœud de travail. Son travail consiste à garder une trace des dosettes et de leurs conteneurs. Il concerne les spécifications de pod écrites en YAML ou JSON. Kubelet examine les spécifications des pods et détermine si les pods sont sains ou non.
Kube-Proxy
Kube-proxy est un proxy réseau et un équilibreur de charge qui agit comme une connexion entre chaque nœud et le serveur API. Il fonctionne sur chaque nœud de votre cluster et vous permet de vous connecter aux pods depuis l'intérieur et l'extérieur de celui-ci.
Kubectl
Kubectl est un outil CLI pour Kubernetes. Il est utilisé pour déployer des applications, surveiller et contrôler les ressources du cluster et consulter les journaux.
Du point de vue de l'utilisateur, kubectl est votre panneau de contrôle pour Kubernetes. Il vous permet d'effectuer toutes les opérations Kubernetes. D'un point de vue technique, Kubectl est un client de l'API Kubernetes.
Conclusion
Dans cet article, nous avons passé en revue les concepts de base de l'orchestration de conteneurs et de l'architecture de Kubernetes. Dans nos prochains articles, nous découvrirons les fonctionnalités clés importantes de Kubernetes et l’installation de Kubernetes à nœud unique.
Lire ensuite :
- Fonctionnalités Kubernetes expliquées en détail
- Comment installer Kubernetes à l'aide de Minikube dans CentOS Linux
- Installer le cluster Kubernetes à l'aide de Kubeadm dans RHEL, CentOS, AlmaLinux, Rocky Linux
- Comment créer et gérer des pods Kubernetes sous Linux
Ressources :
- https://kubernetes.io/docs/home/
- https://www.redhat.com/en/topics/containers/what-is-kubernetes