Kubernetes: Bien démarrer

Découvrez comment commencer le déploiement et la gestion des applications conteneurisées

Introduction sur les conteneurs

Avant de commencer avec Kubernetes, il est important de comprendre comment fonctionne la conteneurisation.

De la même façon que le secteur du transport utilise des conteneurs physiques pour isoler différentes marchandises à transporter à bord de navires, trains, camions et avions, les technologies de développement logiciel utilisent de plus en plus un concept appelé conteneurisation.

Un package logiciel unique, désigné sous le terme « conteneur », regroupe le code d’une application avec les fichiers de configuration connexion, les bibliothèques et les dépendances requises pour que l’application puisse s’exécuter. Cela permet aux développeurs et aux professionnels de l’informatique de créer et de déployer des applications plus rapidement et de manière plus sécurisée.

La conteneurisation offre plusieurs avantages : isolation, portabilité, agilité, évolutivité et contrôle sur l’ensemble du workflow de cycle de vie d’une application. Un conteneur, extrait du système d’exploitation hôte, devient autonome et plus portable, capable de s’exécuter sur n’importe quelle plateforme ou cloud, de manière uniforme et cohérente sur tous les types d’infrastructure.

Composants et concepts Kubernetes

Le cluster

Au niveau le plus élevé, Kubernetes est organisé en tant que cluster de machines virtuelles ou locales. Ces machines, appelées nœuds, partagent des ressources de calcul, de réseau et de stockage. Chaque cluster dispose d’un nœud principal connecté à un ou plusieurs nœuds Worker. Ces nœuds Worker sont responsables de l’exécution de groupes d’applications conteneurisées et de charges de travail, appelées pods, et le nœud principal gère quels pods s’exécutent sur quels nœuds Worker.

Obtenir une vue d’ensemble de Kubernetes

Le plan de contrôle

Pour que le nœud principal puisse communiquer avec les nœuds Worker, et pour qu’une personne puisse communiquer avec le nœud principal, Kubernetes inclut un nombre d’objets qui forment collectivement le plan de contrôle.

Les développeurs et les opérateurs interagissent avec le cluster essentiellement via le nœud principal en utilisant kubectl, une interface de ligne de commande qui s’installe sur leur système d’exploitation local. Les commandes envoyées au cluster via kubectl sont reçues par l’API Kubernetes kube-apiserver qui réside sur le nœud principal. L’API kube-apiserver communique ensuite les requêtes au kube-controller-manager dans le nœud principal, qui, lui, est responsable de la gestion des opérations de nœuds Worker. Les commandes du nœud principal sont reçues via le kubelet sur les nœuds Worker.

Déploiement d’applications et de charges de travail

L’étape suivante pour bien démarrer avec Kubernetes consiste à déployer des applications et charges de travail. Le nœud principal gère l’état actuel du cluster Kubernetes et la configuration dans le cluster etcd, une base de données de magasins de valeurs de clés, à tout moment. Pour exécuter des pods avec vos applications et charges de travail conteneurisées, vous allez décrire le nouvel état souhaité du cluster sous la forme d’un fichier YAML. Le kube-controller-manager prend le fichier YAML et confie au kube-scheduler la tâche de décider quels nœuds Worker l’application ou la charge de travail doit exécuter en fonction de contraintes prédéterminées. Travaillant de concert avec chaque kubelet de nœud Worker, le kube-scheduler démarre les pods, examine l’état des machines et est globalement responsable de la gestion des ressources.

Voir le fonctionnement du kube-scheduler

Dans un déploiement Kubernetes, l’état souhaité que vous décrivez devient l’état actuel dans le cluster etcd, mais l’état précédent n’est pas perdu. Kubernetes prend en charge les restaurations, le déploiement de mises à jour et la suspension des déploiements. En outre, les déploiements utilisent des ReplicaSets en arrière-plan pour garantir que le nombre spécifié de pods configurés de manière identiques s’exécutent. Si un ou plusieurs pods échouent, le ReplicaSet les remplace. On parle ainsi de réparation spontanée de Kubernetes.

Structurer et sécuriser les environnements Kubernetes

Avec votre application ou votre charge de travail déployée, la dernière étape pour bien démarrer avec Kubernetes consiste à les organiser, et déterminer qui ou quel appareil y a accès. En créant un espace de noms, une méthode de regroupement dans Kubernetes, vous permettez aux services, pods, contrôleurs et volumes de fonctionner facilement ensemble tout en les isolant des autres parties du cluster. Aussi, utilisez le concept Kubernetes des espaces de noms pour appliquer des configurations cohérentes aux ressources.

Voir le fonctionnement de la gestion de la configuration

En outre, chaque nœud Worker contient un kube-proxy, qui détermine comment il est possible d’accéder à différents aspects du cluster depuis l’extérieur. Stockez des informations non publiques sensibles comme les jetons, certificats et mots de passe dans des secrets, un autre objet Kubernetes, codés jusqu’au runtime.

Voir le fonctionnement de la gestion des secrets

Enfin, spécifiez qui peut voir et interagir avec quelles parties du cluster et comment ces personnes sont autorisées à interagir, en utilisant le contrôle d’accès en fonction du rôle.

Regardez le fonctionnement du contrôle d’accès en fonction du rôle

Approfondissez les détails techniques de Kubernetes

Voir la documentation Kubernetes

Implémenter une solution Kubernetes complètement managée

Gérez votre environnement Kubernetes hébergé avec Azure Kubernetes Service (AKS). Déployez et maintenez des applications conteneurisées sans avoir à passer par l’orchestration des conteneurs. Provisionnez, mettez à niveau et faites évoluer les ressources à la demande, sans mettre vos applications hors connexion.

Démarrage rapide avec Kubernetes : soyez opérationnel en 50 jours

Utilisez ce guide pas à pas pour bien démarrer avec Kubernetes et profiter d’une expérience pratique avec les composants, fonctionnalités et solutions Kubernetes.

Prêt quand vous l’êtes : essayez gratuitement Kubernetes sur Azure