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 fournit un bref aperçu des principes de base de Kubernetes, avec des liens vers des lectures recommandées pour vous lancer.
Concepts clés
Voici quelques concepts clés que nous utilisons dans la documentation GKE. Il ne s'agit pas d'une liste exhaustive des concepts Kubernetes. Vous trouverez de nombreux autres articles à lire et à explorer dans les sujets fournis dans la documentation Kubernetes et dans nos lectures recommandées.
Nœuds et clusters
Toutes les charges de travail Kubernetes s'exécutent sur des nodes. 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 pour exécuter 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 fournissent un mécanisme permettant de regrouper et de sélectionner davantage de ressources telles que des pods et des services au sein d'un cluster, par exemple si plusieurs équipes d'applications 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, "Je souhaite exécuter trois pods de ce type 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 instances dupliquées. 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 conserve une identité unique 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 s'exécute. Par conséquent, les pods ne disposent pas d'adresses IP stables. Pour obtenir une adresse IP pour une application exécutée 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 en dehors 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 assuré par des disques Compute Engine. Vous pouvez également choisir d'utiliser un espace de 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 ordonnanceur pour planifier des pods sur des 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 d'accès basé sur les rôles
Kubernetes inclut un mécanisme de contrôle des accès basé sur les rôles (RBAC) qui vous permet de créer des stratégies d'autorisation pour accéder à vos clusters et à leurs ressources. Lorsque vous utilisez GKE, vous combinez souvent Kubernetes RBAC et Google CloudIdentity and Access Management pour 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, propose de nombreux contenus à jour et fiables sur tout ce qui concerne Kubernetes.
Guides et tutoriels
- Présentation de Kubernetes: présentation conceptuelle approfondie de Kubernetes. Pourquoi avez-vous besoin de Kubernetes et que peut-il faire ? est une excellente introduction aux problèmes que Kubernetes peut résoudre.
- Tutoriel: Découvrez les principes de base de Kubernetes: présente les principes de base 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, qui s'exécutera sur GKE.
- Tutoriels Kubernetes: lorsque vous êtes prêt à aller au-delà des principes de base, cette section de la documentation Kubernetes fournit 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 de la terminologie Kubernetes. Si vous ne comprenez pas un terme Kubernetes, voici où le rechercher.
Vidéos
- Découvrir Kubernetes avec Google : playlist de guides vidéo Google qui présente les différentes fonctionnalités de Kubernetes, avec du contenu à la fois pour les développeurs et les opérateurs.
Comic
- Bande dessinée sur Kubernetes: découvrez l'histoire de Kubernetes et comment l'utiliser pour l'intégration et le déploiement continus, avec l'aide inattendue de la déesse de la sagesse (et des applications conteneurisées).