Cette section de la documentation de Kubernetes contient des tutoriels.
Un tutoriel montre comment atteindre un objectif qui est plus grand qu'une simple tâche. Il contient différentes sections, et une section contient différentes étapes.
Avant d'explorer chacun des tutoriels, il peut-être utile de garder un signet pour le Glossaire standardisé pour pouvoir le consulter plus facilement par la suite.
Elémentaires
Kubernetes Élémentaire (EN) est un tutoriel interactif en profondeur qui vous aidera à comprendre le système de Kubernetes et de commencer avec des fonctionnalités élémentaires de Kubernetes.
Ce tutoriel vous montre comment exécuter une simple application Hello World Node.js sur Kubernetes en utilisant Minikube et Katacoda.
Katacoda fournit un environnement Kubernetes gratuit dans le navigateur.
Note: Vous pouvez également suivre ce tutoriel si vous avez installé Minikube localement.
Objectifs
Déployez une application Hello World sur Minikube.
Lancez l'application.
Afficher les journaux des applications.
Pré-requis
Ce tutoriel fournit une image de conteneur construite à partir des fichiers suivants :
FROM node:6.14.2
EXPOSE 8080
COPY server.js .
CMD node server.js
Pour plus d'informations sur la commande docker build, lisez la documentation de Docker.
Créer un cluster Minikube
Cliquez sur Lancer le terminal.
Note: Si vous avez installé Minikube localement, lancez minikube start.
Ouvrez le tableau de bord Kubernetes dans un navigateur :
minikube dashboard
Environnement Katacoda seulement : En haut du volet du terminal, cliquez sur le signe plus, puis cliquez sur Sélectionner le port pour afficher sur l'hôte 1.
Environnement Katacoda seulement : Tapez 30000, puis cliquez sur Afficher le port.
Créer un déploiement
Un Pod Kubernetes est un groupe d'un ou plusieurs conteneurs, liés entre eux à des fins d'administration et de mise en réseau.
Dans ce tutoriel, le Pod n'a qu'un seul conteneur.
Un Déploiement Kubernetes vérifie l'état de santé de votre Pod et redémarre le conteneur du Pod s'il se termine.
Les déploiements sont le moyen recommandé pour gérer la création et la mise à l'échelle des Pods.
Utilisez la commande kubectl create pour créer un déploiement qui gère un Pod. Le
Pod utilise un conteneur basé sur l'image Docker fournie.
Par défaut, le Pod n'est accessible que par son adresse IP interne dans le cluster Kubernetes.
Pour rendre le conteneur hello-node accessible depuis l'extérieur du réseau virtuel Kubernetes, vous devez exposer le Pod comme un Service Kubernetes.
Exposez le Pod à internet en utilisant la commande kubectl expose :
L'indicateur --type=LoadBalancer indique que vous voulez exposer votre Service
à l'extérieur du cluster.
Affichez le Service que vous venez de créer :
kubectl get services
Sortie :
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
hello-node LoadBalancer 10.108.144.78 <pending> 8080:30369/TCP 21s
kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 23m
Sur les fournisseurs de cloud qui supportent les load balancers, une adresse IP externe serait fournie pour accéder au Service.
Sur Minikube, le type LoadBalancer rend le Service accessible via la commande minikube service.
Exécutez la commande suivante :
minikube service hello-node
Environnement Katacoda seulement : Cliquez sur le signe plus, puis cliquez sur Sélectionner le port pour afficher sur l'hôte 1.
Environnement Katacoda seulement : Tapez 30369 (voir port en face de 8080 dans la sortie services), puis cliquez sur Afficher le port.
Cela ouvre une fenêtre de navigateur qui sert votre application et affiche le message Hello World.
Activer les extensions
Minikube dispose d'un ensemble d'extensions intégrées qui peuvent être activées, désactivées et ouvertes dans l'environnement Kubernetes local.
Énumérer les extensions actuellement pris en charge :
Ce tutoriel offre une présentation des bases du système d’orchestration de cluster Kubernetes. Chaque module contient des informations de base sur les principales caractéristiques et concepts de Kubernetes, ainsi qu'un didacticiel en ligne interactif. Ces tutoriels interactifs vous permettent de gérer vous-même un cluster simple et ses applications conteneurisées.
À l'aide des didacticiels interactifs, vous pouvez apprendre à:
Déployer une application conteneurisée sur un cluster
Passage à l'échelle du déploiement
Mettre à jour l'application conteneurisée avec une nouvelle version du logiciel
Déboguer l'application conteneurisée
Les didacticiels utilisent Katacoda pour exécuter un navigateur virtuel dans votre navigateur Web, qui exécute Minikube, un déploiement local à petite échelle de Kubernetes pouvant être exécuté n’importe où. Il n'est pas nécessaire d'installer un logiciel ou de configurer quoi que ce soit; chaque didacticiel interactif s’exécute directement à partir de votre navigateur Web.
Qu'est-ce que Kubernetes peut faire pour vous?
Avec les services Web modernes, les utilisateurs s'attendent à ce que les applications soient disponibles 24 heures sur 24, 7 jours sur 7 et les développeurs prévoient de déployer de nouvelles versions de ces applications plusieurs fois par jour. La conteneurisation aide les progiciels à atteindre ces objectifs, en permettant aux applications d'être publiées et mises à jour de manière simple et rapide sans temps d'arrêt. Kubernetes vous aide à vous assurer que ces applications conteneurisées s'exécutent où et quand vous le souhaitez, et les aide à trouver les ressources et les outils dont elles ont besoin pour travailler. Kubernetes est une plate-forme open source prête pour la production, conçue avec l'expérience accumulée de Google dans l'orchestration de conteneurs, associée aux meilleures idées de la communauté.
Démarrez un cluster Kubernetes à l'aide d'un terminal en ligne.
Kubernetes Clusters
Kubernetes coordonne un groupe d'ordinateurs hautement disponibles qui sont connectés pour fonctionner comme une seule et même unité. Les abstractions de Kubernetes vous permettent de déployer des applications conteneurisées dans un cluster sans les lier spécifiquement à des ordinateurs individuels. Pour utiliser ce nouveau modèle de déploiement, les applications doivent être empaquetées de manière à les dissocier des hôtes individuels: elles doivent être conteneurisées. Les applications conteneurisées sont plus flexibles et disponibles que dans les modèles de déploiement précédents, dans lesquels les applications étaient installées directement sur des machines spécifiques sous la forme de packages profondément intégrés à l'hôte. Kubernetes automatise plus efficacement la distribution et la planification des conteneurs d'applications dans un cluster. Kubernetes est une plate-forme open source prête pour la production.
Un cluster Kubernetes est constitué de deux types de ressources:
Le maître coordonne le cluster.
Les nœuds sont les serveurs qui exécutent des applications.
Sommaire:
Kubernetes cluster
Minikube
Kubernetes est une plate-forme open source pour la production qui orchestre le placement (planification) et l'exécution de conteneurs d'applications à l'intérieur et à travers des clusters d'ordinateur.
Schéma du Cluster
Le maître est responsable de la gestion du cluster. Le maître coordonne toutes les activités de votre cluster, telles que la planification des applications, la gestion de l'état souhaité des applications, la mise à l'échelle des applications et le déploiement de nouvelles mises à jour.
Un nœud est une machine virtuelle ou un ordinateur physique servant d’ordinateur de travail dans un cluster Kubernetes. Chaque nœud est doté d’un Kubelet, qui est un agent permettant de gérer le nœud et de communiquer avec le maître Kubernetes. Le nœud doit également disposer d'outils permettant de gérer les opérations de conteneur, telles que Docker ou rkt. Un cluster Kubernetes qui gère le trafic de production doit comporter au moins trois nœuds.
Les maîtres gèrent le cluster et les nœuds sont utilisés pour héberger les applications en cours d'exécution.
Lorsque vous déployez des applications sur Kubernetes, vous indiquez au maître de démarrer les conteneurs d'applications. Le maître planifie l'exécution des conteneurs sur les nœuds du cluster. Les nœuds communiquent avec le maître à l'aide de l'API Kubernetes , que le maître expose. Les utilisateurs finaux peuvent également utiliser l'API Kubernetes directement pour interagir avec le cluster.
Un cluster Kubernetes peut être déployé sur des machines physiques ou virtuelles. Pour démarrer avec le développement de Kubernetes, vous pouvez utiliser Minikube. Minikube est une implémentation Kubernetes légère qui crée une machine virtuelle sur votre machine locale et déploie un cluster simple contenant un seul nœud. Minikube est disponible pour les systèmes Linux, macOS et Windows. La CLI Minikube fournit des opérations d’amorçage de base permettant d’utiliser votre cluster, notamment les fonctions de démarrage, d’arrêt, de statut et de suppression. Pour ce tutoriel, toutefois, vous utiliserez un terminal en ligne fourni avec Minikube pré-installé.
Maintenant que vous savez ce qu'est Kubernetes, allons au didacticiel en ligne et commençons notre premier cluster!
2.2.1 - Utiliser kubectl pour créer un déploiement
Objectifs
En savoir plus sur les déploiements d'applications.
Déployez votre première application sur Kubernetes avec kubectl.
Déploiements Kubernetes
Une fois que vous avez un cluster Kubernetes en cours d'exécution, vous pouvez déployer vos applications conteneurisées par dessus.
Pour ce faire, vous créez une configuration de Déploiement (Deployments) Kubernetes. Le déploiement instruit Kubernetes
de comment créer et mettre à jour des instances de votre application. Une fois que vous avez créé un déploiement, le plannificateur de Kubernetes (kube-scheduler)
planifient les instanciations d'application sur des nœuds du cluster.
Une fois les instances d’application créées, un contrôleur de déploiement Kubernetes surveille en permanence ces instances. Si le nœud hébergeant une instance tombe en panne ou est supprimé, le contrôleur de déploiement remplace l'instance par une instance située sur un autre nœud du cluster. Ceci fournit un mécanisme d'auto-réparation pour faire face aux pannes ou à la maintenance de la machine.
Dans le monde de pré-orchestration, les scripts d'installation étaient souvent utilisés pour démarrer des applications, mais ils ne permettaient pas une récupération après une panne d'ordinateur. En créant et en maintenant vos instances d’application sur plusieurs nœuds, les Déploiements Kubernetes offre une approche fondamentalement différente de la gestion des applications.
Sommaire:
Déploiements
Kubectl
Un déploiement est responsable de la création et de la mise à jour des instances de votre application.
Déploiement de votre première application sur Kubernetes
Vous pouvez créer et gérer un déploiement à l'aide de l'interface de ligne de commande, Kubectl.
Kubectl utilise l'API Kubernetes pour interagir avec le cluster. Dans ce module, vous apprendrez les commandes Kubectl les plus courantes nécessaires à la création de déploiements exécutant vos applications sur un cluster Kubernetes.
Lorsque vous créez un déploiement, vous devez spécifier l'image de conteneur de votre application et le nombre de réplicas que vous souhaitez exécuter. Vous pouvez modifier ces informations ultérieurement en mettant à jour votre déploiement.; Modules 5 et 6 du bootcamp, expliquez comment vous pouvez faire évoluer et mettre à jour vos déploiements.
Les applications doivent être regroupées dans l’un des formats de conteneur pris en charge pour pouvoir être déployées sur Kubernetes.
Pour notre premier déploiement, nous utiliserons une application Node.js intégrée dans un conteneur Docker.
Pour créer l'application Node.js et déployer le conteneur Docker, suivez les instructions du
Tutoriel Hello Minikube.
Maintenant que vous savez ce que sont les déploiements, allons au didacticiel en ligne et déployons notre première application!