GKE est basé sur la plate-forme d'orchestration de conteneurs Open Source Kubernetes. Une grande partie de la documentation de ce site part du principe que vous connaissez déjà les concepts et la terminologie de base de Kubernetes. Si ce n'est pas le cas, cette page vous présente rapidement les principes de base de Kubernetes et vous fournit des liens vers des lectures recommandées pour vous aider à vous lancer.
Concepts clés
Voici quelques concepts clés que nous utilisons dans la documentation GKE. Cette liste de concepts Kubernetes n'est pas exhaustive. Vous trouverez de nombreuses autres informations à lire et à explorer dans les rubriques fournies de la documentation Kubernetes et dans nos lectures recommandées.
Nœuds et clusters
Toutes les charges de travail Kubernetes s'exécutent sur des nœuds. Dans GKE, un nœud est une machine virtuelle (VM) Compute Engine. Sur d'autres plates-formes Kubernetes, un nœud peut être une machine physique ou virtuelle. Chaque nœud est géré par le plan de contrôle Kubernetes et dispose de tous les composants nécessaires à l'exécution des pods. Un cluster est un ensemble de nœuds pouvant être traités ensemble, comme une seule entité, sur laquelle vous déployez une application conteneurisée.
Pour en savoir plus, consultez la documentation Kubernetes :
Espaces de noms
Les espaces de noms Kubernetes permettent de regrouper et de sélectionner des ressources telles que des pods et des services au sein d'un cluster. Par exemple, si plusieurs équipes d'application exécutent des charges de travail sur un même cluster.
Pour en savoir plus, consultez la documentation Kubernetes :
Pods
Dans Kubernetes, les applications conteneurisées s'exécutent dans un pod. Un pod est la plus petite unité de calcul déployable que vous pouvez créer et gérer dans Kubernetes. Un pod comporte un ou plusieurs conteneurs. Lorsqu'un pod exécute plusieurs conteneurs (par exemple, un serveur d'applications et un serveur proxy), les conteneurs sont gérés comme une seule entité et partagent les ressources du pod.
Pour en savoir plus, consultez la documentation Kubernetes :
Contrôleurs
Les contrôleurs Kubernetes suivent et gèrent l'état de vos clusters et de vos charges de travail en fonction de l'état souhaité que vous spécifiez (par exemple, "J'aimerais exécuter trois de ces pods sur ce cluster, avec ce conteneur dans chaque pod"). Différents contrôleurs suivent différents types de ressources Kubernetes, y compris les suivants :
- Déploiements : un déploiement est un objet Kubernetes qui représente un ou plusieurs pods identiques, appelés répliques. Un déploiement exécute plusieurs instances dupliquées des pods répartis entre les nœuds d'un cluster. Un déploiement remplace automatiquement tous les pods qui échouent ou ne répondent pas.
- StatefulSet : un StatefulSet est semblable à un déploiement, mais il conserve une identité unique et persistante pour chacun de ses pods. Les StatefulSets peuvent être utiles dans les applications avec état persistant (applications avec état).
- DaemonSets : un DaemonSet Kubernetes vous permet d'ajouter des pods par défaut à certains ou à tous vos nœuds. Il s'agit souvent de services d'assistance pour vos charges de travail, tels qu'un daemon de collecte de journaux ou un daemon de surveillance.
- ReplicaSets : un ReplicaSet est un ensemble de pods identiques. Un ReplicaSet est généralement géré dans le cadre d'un déploiement.
Pour en savoir plus, consultez la documentation Kubernetes :
Service Kubernetes
Par défaut, vous ne pouvez pas contrôler le nœud de cluster sur lequel un pod est en cours d'exécution. Par conséquent, les pods ne disposent pas d'adresses IP stables. Pour obtenir une adresse IP pour une application s'exécutant dans Kubernetes, vous devez définir une abstraction de mise en réseau au-dessus de ses pods, appelée service Kubernetes. Un service Kubernetes fournit un point de terminaison de mise en réseau stable pour un ensemble de pods.
Il existe plusieurs types de services, y compris les services LoadBalancer
qui exposent une adresse IP externe afin que vous puissiez accéder aux applications depuis l'extérieur de leur cluster.
Kubernetes dispose également d'un système DNS intégré pour la résolution d'adresses internes, qui attribue des noms DNS (par exemple, helloserver.default.cluster.local
) aux services. Cela permet aux pods du cluster d'atteindre d'autres pods du cluster à l'aide d'une adresse stable. Vous ne pouvez pas utiliser ce nom DNS en dehors du cluster, par exemple depuis Cloud Shell.
Pour en savoir plus, consultez la documentation Kubernetes :
Stockage
Si vos applications doivent enregistrer des données qui existent au-delà de la durée de vie de leur pod (applications avec état), vous pouvez utiliser un objet PersistentVolume Kubernetes pour provisionner cet espace de stockage. Dans GKE, le stockage PersistentVolume est sauvegardé par les disques Compute Engine. Vous pouvez également choisir d'utiliser un stockage éphémère, qui est détruit lorsque le pod correspondant s'arrête.
Pour en savoir plus, consultez la documentation Kubernetes :
Plan de contrôle Kubernetes
Le plan de contrôle Kubernetes est un ensemble de composants système qui gèrent l'état global de votre cluster, y compris le serveur d'API Kubernetes qui vous permet d'interagir avec vos clusters et applications à l'aide de kubectl
et d'autres outils, un programmateur pour planifier les pods sur les nœuds disponibles et les contrôleurs qui suivent et gèrent l'état du cluster. Dans GKE, le plan de contrôle est fourni et géré par Google Cloud.
Pour en savoir plus, consultez la documentation Kubernetes :
Contrôle des accès basé sur les rôles (RBAC)
Kubernetes inclut un mécanisme de contrôle des accès basé sur les rôles (RBAC) qui vous permet de créer des règles d'autorisation pour accéder à vos clusters et à leurs ressources. Lorsque vous utilisez GKE, vous combinez souvent le RBAC Kubernetes et Identity and Access Management de Google Cloudpour sécuriser vos applications.
Pour en savoir plus, consultez la documentation Kubernetes :
Lectures conseillées
Cette section fournit des liens vers des ressources recommandées pour en savoir plus sur Kubernetes. En particulier, Kubernetes.io, le site Web officiel de Kubernetes, contient de nombreuses ressources fiables et à jour sur tous les aspects de Kubernetes.
Guides et tutoriels
- Présentation de Kubernetes : présentation conceptuelle détaillée de Kubernetes. Pourquoi avez-vous besoin de Kubernetes et ce qu'il peut faire est une excellente introduction aux problèmes que Kubernetes peut résoudre.
- Tutoriel : Apprendre les bases de Kubernetes : vous présente les bases de Kubernetes à l'aide d'un exemple simple.
- Tutoriel : Présentation des conteneurs : découvrez les conteneurs et l'orchestration de conteneurs à l'aide d'un exemple d'application simple, en terminant par l'exécution de l'exemple sur GKE.
- Tutoriels Kubernetes : lorsque vous êtes prêt à aller au-delà des bases, cette section de la documentation Kubernetes propose des tutoriels sur divers sujets Kubernetes, des applications avec état à la sécurité.
Documentation de référence
- Glossaire Kubernetes : liste complète et standardisée des termes Kubernetes. Si vous n'êtes pas sûr de la signification d'un terme Kubernetes, voici où le trouver !
Vidéos
- Découvrir Kubernetes avec Google : playlist de guides vidéo de Google qui couvrent différentes fonctionnalités de Kubernetes, avec du contenu pour les développeurs et les opérateurs.
Bande dessinée
- Bande dessinée sur Kubernetes : découvrez l'histoire de Kubernetes et comment l'utiliser pour l'intégration et la livraison continues, avec l'aide improbable de la déesse de la Sagesse (et des applications conteneurisées).