Kubernetes est le logiciel open source le plus populaire qui automatise les processus de développement de conteneurs.
Selon la étude annuelle par la Cloud Native Computing Foundation (CNCF), 96 % des organisations utilisent des K8 ou envisagent de les utiliser. Si vous suivez de près, 5.8 millions de développeurs dans le monde utilisent Kubernetes, et cela représente 31 % des développeurs backend à travers le monde.
Il est préféré pour sa capacité à tirer parti de la technologie grâce à une évolutivité, une disponibilité et un temps de déploiement réduits. Alors que de nombreux développeurs lancent leur trajectoire de conteneurs avec Docker (un outil complet qui s'appuie sur la CLI pour interagir avec les conteneurs, un à la fois), K8s vous fournit des abstractions de haut niveau pour vous permettre de définir les applications et leur infrastructure via des schémas sur lesquels vous pouvez collaborer.
Si vous débutez avec Kubernetes, cet article est spécialement conçu pour vous aider dans votre introduction et partager des informations pour vous aider à démarrer. Vous apprendrez comment K8s peut vous aider en tant que développeur à booster vos produits numériques.
What Is Kubernetes, and Why Do You Need It?
Kubernetes est un moteur de coordination open source (framework) utilisé pour automatiser le déploiement, la mise à l'échelle et la gestion des applications conteneurisées ; cela inclut la gestion de la prévisibilité et de la disponibilité.
En termes simples, imaginons une application que vous avez conteneurisée. Pour servir les utilisateurs de votre application, vous devez exécuter plusieurs conteneurs. L'inquiétude survient lorsque vous devez gérer ces conteneurs. Les conteneurs ne sont pas nécessairement sur la même machine, ce qui complique les choses. Alors, quelle est la solution à ce problème ?
Kubernetes vient à votre secours en fournissant un moyen efficace de gérer tous ces processus de manière transparente. Bien que vous puissiez comparer K8 à un moteur de conteneur comme Docker, il s'agit d'un orchestrateur de conteneurs. En tant que développeur débutant, vous n'avez pas à vous soucier de la façon dont K8s effectue l'orchestration. Vous ne configurerez probablement pas de cluster K8s pour votre application ; plus à ce sujet sous peu.
Cependant, vous interagirez avec les clusters configurés par votre équipe d'infrastructure. Se familiariser avec les objets avec lesquels vous allez interagir est crucial. Mais avant de faire cela, vous aurez besoin d'une compréhension de haut niveau de son architecture pour comprendre ce qui se passe en dessous.
Features of Kubernetes
Kubernetes dispose de plusieurs fonctionnalités avec un large éventail de capacités pour l'exécution de conteneurs et d'autres infrastructures associées. Voici une liste:
- Déploiements, mises à l'échelle et restaurations automatisés – K8s robotise la création du nombre spécifié de répliques, les distribue sur le matériel approprié (le plus approprié) et replanifie les conteneurs si un nœud est en panne. Vous pouvez instantanément mettre à l'échelle vos répliques en fonction de la demande ou de l'évolution des besoins, comme l'utilisation de votre CPU.
- Découverte de service, stabilisation de charge et entrée réseau – Kubernetes offre une solution de mise en réseau unique, comprenant la découverte de services internes et l'exposition de conteneurs publics.
- Applications avec et sans état – Au début, les K8 se concentraient principalement sur les conteneurs sans état. Au fur et à mesure que la technologie évolue sur de nombreux fronts, elle prend désormais en charge des objets intégrés représentant des applications avec état. Ratifiée, toute application peut fonctionner sur Kubernetes.
- Règlement de stockage – Que vous soyez sur un système de fichiers local, un partage réseau ou dans le cloud, Kubernetes fournit un stockage persistant (abstrait) aux applications exécutées sur des conteneurs. Et l'abstraction vous permet de définir les exigences de stockage indépendamment de l'infrastructure sous-jacente. Bien que cela dépasse le cadre de cet article, il fonctionne selon des principes tels que le volume persistant (PV), la revendication de volume persistant (PVC), les classes de stockage et les plug-ins de volume.
- État déclaratif – K8s utilise des fichiers Yet Ain't Markup Language (YAML), appelés manifestes d'objets, pour spécifier les états souhaités pour votre cluster. Les manifestes dictent à quoi ressemble votre cluster, y compris, mais sans s'y limiter, les instances d'application et les règles de mise en réseau souhaitées, entre autres configurations. Lorsque vous appliquez des manifestes, K8s gère automatiquement toutes les transitions d'état - vous n'avez pas besoin d'écrire les scripts pour ce faire.
- Plusieurs environnements de travail – Vous n'êtes pas limité à l'utilisation de Kubernetes dans le cloud ou sur votre poste de travail de développeur. Presque toutes les distributions sont disponibles pour correspondre à votre cas d'utilisation spécifique. Recherchez les principaux fournisseurs de technologie cloud tels que Amazon Services Web, Google Cloud et Microsoft Azure. Vous vous rendrez compte qu'ils offrent tous des services Kubernetes gérés tandis que les distributions à nœud unique comme Minikube , K3s sont disponibles pour une utilisation locale.
- Super extensivité – K8s est une collection de nombreuses fonctionnalités. Comme si cela ne suffisait pas, vous pouvez accélérer ses capacités avec des extensions. Vous pouvez créer des types d'objets, des opérateurs et des contrôleurs personnalisés pour rationaliser vos charges de travail.
Kubernetes Architecture
En son coeur, Architecture Kubernetes comprend un seul nœud maître et deux nœuds de travail. Le nœud maître appelle les prises de vue dans le cluster, tandis que les nœuds de travail (esclaves) exécutent les applications comme décidé par le maître.

Voici une autre ventilation.
Le(s) nœud(s) maître(s)
Le nœud maître dicte les états du cluster et décide des actions de chaque nœud particulier. Plusieurs processus sont nécessaires pour configurer le nœud maître.
- Serveur API
Toutes les communications du cluster sont basées ici. C'est la passerelle qui permet à tous les composants du cluster d'échanger des informations. Il expose l'API Kubernetes. Il y a deux rôles principaux joués ici. Le premier est un point d'entrée qui permet aux utilisateurs d'interagir avec le cluster. Par exemple, l'envoi de requêtes lors de l'utilisation KubectlName. Deuxièmement, le contrôle d'accès pour authentifier et valider les demandes. Dans ce cas, seuls certains utilisateurs peuvent exécuter des requêtes. - Planificateur
Le planificateur affecte des applications ou des objets de charge de travail Kubernetes au nœud de travail. Ici, le planificateur place les pods sur les nœuds en fonction des besoins en ressources. Et quand vous parlez de pods, ce n'est qu'une petite unité de déploiement dans Kubernetes. - Gestionnaire de contrôleur
Cette unité gère les clusters comme les défaillances de nœuds pour maintenir le nombre correct de pods. Il détecte les changements d'état du cluster, comme la mort des pods, et tente de restaurer le pod à son état d'origine. Par exemple, si une gousse meurt accidentellement, le gestionnaire de contrôleur demande le ordonnanceur pour ratifier quel nœud lance un nouveau pod en remplacement, et Kubelet fait tourner un nouveau pod. - etcd
Il est également appelé le cerveau du cluster. L'unité est un magasin de valeurs de clé pour la configuration du cluster. Cela signifie que tous les changements de cluster sont effectués ici. Vous pouvez sauvegarder un cluster en enregistrant le magasin distribué de valeur de clé. Cependant, veuillez noter que seules les données d'état du cluster sont stockées ici, pas les données d'application. Cette unité est spécifiquement destinée à conserver les informations sur l'état du cluster et à les utiliser pour les processus précédents en leur faisant prendre conscience du cluster.
Le(s) nœud(s) esclave(s)
Chaque nœud esclave est installé avec trois processus de nœud qui permettent aux K8 d'interagir avec lui et de faire tourner séparément les pods dans chaque nœud. Les processus requis sont :
- kubelet
Il s'agit du service principal de Kubernetes qui exécute l'exécution pour la couche d'exécution du conteneur. Si vous retirez cette unité, Kubernetes n'est rien d'autre qu'une API REST approuvée par un magasin clé-valeur. Par défaut, K8s exécute l'application conteneur. Les conteneurs sont toujours isolés les uns des autres et du système hôte sous-jacent. Cela s'est avéré analytique pour dissocier la gestion des applications individuelles de l'autre et de l'infrastructure physique ou virtuelle.
Bien que le contrôle d'admission de l'API puisse rejeter des pods ou ajouter des contraintes supplémentaires, Kubelet est le ratificateur final des pods exécutés sur un nœud particulier, pas des planificateurs ou des Daemonsets. Résumer, Kubelets interagir avec le nœud et le conteneur. Il prend également des fichiers de configuration et lance des pods à l'aide de l'environnement d'exécution du conteneur. - exécution du conteneur
Cette section exécute des conteneurs. Par exemple, vous pouvez utiliser Docker, rkt ou conatininer un peu plus sur la section sur le fonctionnement des conteneurs. - Proxy Kube
Cette unité fournit une couche d'abstraction pour les groupes de pods de nœuds dans le cadre de politiques courantes, comme dans le cas de l'équilibrage de charge. Tous les nœuds appliquent Kube-proxy pour fournir un environnement virtuel adresse IP pour les clients accédant aux pods dynamiques. Cette structure est la solution pour équilibrer la charge tout en gardant un surcoût peu performant.
How Containerization Works
La conteneurisation implique la virtualisation de tous les éléments nécessaires d'une application logicielle en une seule unité. Sous les conteneurs se trouvent une collection de bibliothèques, de fichiers binaires et de toutes les configurations d'application nécessaires. Mais ils n'incluent pas les ressources du noyau ni le matériel virtualisé.
En fin de compte, exécutez des runtimes de conteneur « sur le dessus » qui décrivent les ressources. Étant donné que les conteneurs n'incluent que les composants de base et les dépendances des applications, ils sont légers et donc plus rapides, contrairement aux autres machines virtuelles.
A lire également: Conteneurs vs machines virtuelles : expliquer les différences
How to Install and Setup Kubernetes
J'ai passé tellement de temps à être théorique; la section en cascade sera tactique et impliquera une expérience pratique des conteneurs. Ce tutoriel couvre particulièrement l'installation sur le système d'exploitation Windows.
Il existe plusieurs façons d'effectuer des installations lorsque vous utilisez Windows ; vous pouvez opter pour la ligne de commande ou l'interface utilisateur graphique. Cependant, vous devez vous assurer que vous respectez les spécifications requises suivantes.
Votre matériel a besoin d'un nœud maître avec au moins 2 Go de mémoire et 700 Mo pour le nœud de travail. Pour les exigences logicielles, Hype-v, Docker pour ordinateur de bureau, unique Adresse Mac, et un UUID de produit unique pour chaque nœud. Voici l'approche étape par étape.
Installation et configuration d'Hyper-V
Hyper-V est le logiciel de virtualisation par défaut de Windows. Essentiellement, il s'agit d'une VirtalBox sous stéroïdes. Il vous permet de gérer des machines virtuelles sur l'interface graphique Microsoft ou la ligne de commande. Pour activer Hyper-V, procédez comme suit.
- Ouvrez le panneau de configuration.
- Cliquez sur les programmes dans le panneau de gauche.
- Sous la page du programme et des fonctionnalités, cliquez sur "Activer ou désactiver les fonctionnalités Windows".
- Sélectionnez les fonctionnalités Hyper-V et Hypervisor pour Windows.
- Ensuite, sélectionnez OK à cette étape ; votre machine doit redémarrer pour activer les nouveaux paramètres.
Parfois, votre PC peut redémarrer plusieurs fois pour s'assurer que tout est correctement configuré. Vous pouvez vérifier le succès de l'installation en saisissant la commande suivante dans Power Shell.
Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V
Confirmez que votre écran est rempli avec un 'enabled
' Etat.
Installation de Docker
Comme vous l'avez appris, K8s est un outil d'orchestration de conteneurs construit au-dessus des conteneurs ; dans ce cas, Docker est un bon choix. K8s communique avec Docker et gère tout au niveau de l'entreprise. Bougez en téléchargement de Docker Pour les fenêtres. Si vous vous demandez pourquoi il est nécessaire d'utiliser Docker Desktop, il est préférable de simplifier le développement, l'expédition et l'exécution d'applications dockerisées (conteneurisées).
C'est également le moyen le plus rapide de créer des applications Docker sur Windows à l'aide d'Hyper-V et de la mise en réseau. Après une installation réussie, Docker est toujours accessible sur n'importe quel terminal tant qu'il est en cours d'exécution. Pour un guide détaillé sur l'installation, vous pouvez consulter le site officiel Documentation Docker. Si vous rencontrez des problèmes tels que des icônes masquées après l'installation, le problème peut être résolu en redémarrant votre ordinateur.
Installation de Kubernetes
L'interface graphique Docker vous permet de configurer les paramètres, d'installer et d'activer Kubernetes. Pour installer K8s, suivez ces étapes.
- Cliquez avec le bouton droit sur l'icône de la barre d'état Docker et sélectionnez les propriétés.
- Sélectionnez "Paramètres" dans le menu déroulant après avoir cliqué sur "Propriétés".
- Dans le panneau de gauche, choisissez "Kubernetes" et cliquez sur "Appliquer".
Docker installera ensuite des packages et des dépendances supplémentaires. Le processus prend environ cinq à dix minutes, en fonction de votre vitesse Internet. Vous pouvez utiliser l'application Docker pour affirmer que tout fonctionne correctement.
Étant donné que les applications Kubernetes peuvent être déployées à l'aide de la CLI, vous devrez peut-être installer le tableau de bord K8s, car il n'est pas installé par défaut. Installez le tableau de bord en suivant les étapes suivantes.
- Télécharger Configuration YAML.
- Déployez l'application à l'aide de ce code :
. Kubectl apply -f .\recommended.yaml
. - Confirmez que tout est bien réglé en :
kubectl.exe get -f .\recommended.yaml.txt
.
Pour accéder au tableau de bord, exécutez la commande suivante sur Power Shell (pas CMD)
- Exécutez le code suivant
((kubectl -n kube-system describe secret default | select-string “token:”) – split “+”)[1]
- Copiez le jeton généré et exécutez
kubectl proxy
.
- Copiez le jeton généré et exécutez
- Sur votre navigateur, ouvrez ce lien.
- Cliquez sur `Token` et collez votre jeton ici.
- Se connecter.
Si vous l'avez fait ici, bravo votre écran devrait être rempli avec le tableau de bord K8s. Vous pouvez désormais gérer vos applications sans faire le travail acharné à l'aide de la CLI.
A lire également: Comment installer Kubernetes sur Ubuntu 18
How to Create and Manage Kubernetes Cluster
Si vous avez suivi ici, vous devriez avoir installé avec succès Kubernetes sur votre hôte. Ensuite, suivez ces étapes pour créer et effectuer une gestion simple sur votre cluster :
- Configurer le réseau – Ici, vous devez configurer la mise en réseau entre les nœuds du cluster ; leur permettre de communiquer entre eux.
- Configurer l'authentification du cluster – Créer des mécanismes d'authentification et d'autorisation pour l'accès au cluster.
- Configurer les composants principaux ; implique un serveur d'API, un planificateur et un gestionnaire de contrôleur.
- Joindre des noeuds worker – Connectez les noeuds worker au cluster à l'aide des fichiers de configuration fournis par le processus de configuration du cluster.
- Déployer des modules complémentaires – Vous pouvez installer des extensions pour améliorer les fonctionnalités du cluster.
- Gérer les charges de travail – Il est temps pour vous de déployer vos applications.
Bien qu'il ne s'agisse que d'un aperçu du processus de création de cluster, il implique de nombreuses étapes impliquant plusieurs commandes. Voici le guide de documentation officiel sur la façon de créer des clusters avant le déploiement. Cela devrait être votre guide.
How to Deploy Your First Application Using Kubernetes
La commande la plus courante lors de l'utilisation de K8 est kubectl action resource
, qui vous permet d'effectuer des actions spécifiques telles que la création ou la suppression d'une ressource spécifiée.
Si vous êtes bloqué, vous pouvez utiliser --help
après une sous-commande particulière pour obtenir des informations supplémentaires.
Par exemple, Kubernetes get nodes --help
. Déployez votre première application K8s à l'aide de kubectl create deployment Kubernetes-bootcamp –image=gcr.io/google-samples/Kubernetes-bootcamp:v1
commander.
Mot de la fin
Ce guide a été un point d'entrée dans la technologie Kubernetes. Vous avez découvert les avantages, les fonctionnalités et l'architecture de Kubernetes. Heureusement, vous avez peut-être dû vous référer à quelques pointeurs (ressources externes) pour démarrer ; il a expliqué comment les choses fonctionnent sous le capot.
Bien qu'il puisse sembler écrasant de comprendre l'ensemble de la pile technologique en tant que débutant, cet article a été un guide simple pour vous aider à démarrer avec les K8. Vous aurez besoin d'un peu de pratique pour vous familiariser avec l'utilisation de cette technologie, je vous renvoie donc à la documentation officielle de Kubernetes comme référence côte à côte. Plus vous pratiquez, plus vite vous deviendrez un expert des K8.
Ensuite, consultez Tutoriels Kubernetes pour les débutants à maîtriser.