Google Kubernetes Engine (GKE)
Google Kubernetes Engine (GKE) – anciennement appelé Google Container Engine – est un système de gestion et d'orchestration pour les conteneurs Docker exécutés dans les services de cloud public de Google. Google Container Engine est fondé sur Kubernetes, le système de gestion de conteneurs open source de Google.
Les entreprises utilisent généralement Google Kubernetes Engine pour effectuer les opérations suivantes :
- Créer ou redimensionner des clusters de conteneurs Docker
- Créer des pods de conteneurs, des contrôleurs de réplication, des travaux, des services ou des équilibreurs de charge
- Redimensionner des contrôleurs d'application
- Mettre à jour et mettre à niveau des clusters de conteneurs
- Déboguer des clusters de conteneurs
Les utilisateurs peuvent interagir avec Google Kubernetes Engine à l'aide de l'interface de ligne de commande gcloud ou de la console Google Cloud Platform.
Google Kubernetes Engine est fréquemment utilisé par des développeurs de logiciels pour créer et tester de nouvelles applications d'entreprise. Les administrateurs se servent aussi des conteneurs pour mieux répondre aux exigences d'évolutivité et de performance des applications d'entreprise, telles que les serveurs Web.
Google Kubernetes Engine se compose d'un groupe d'instances Google Compute Engine qui exécutent Kubernetes. Un noeud maître gère un cluster de conteneurs Docker. Il exécute également un serveur d'API Kubernetes pour interagir avec le cluster et effectuer des tâches telles que la satisfaction des demandes d'API et la planification des conteneurs. En plus de ce noeud maître, un cluster peut également inclure un ou plusieurs noeuds, exécutant chacun un runtime Docker et un agent nécessaires à la gestion des conteneurs Docker.
Les utilisateurs de Google Kubernetes Engine organisent les conteneurs en pods qui représentent des groupes logiques de conteneurs associés. Ainsi, ces groupes peuvent inclure des fichiers de logs, des conteneurs de points de contrôle ou de snapshots, ou encore des conteneurs de compression de données. De la même façon, il est possible de regrouper dans un même pod des proxies réseaux, des bridge et des adaptateurs. En général, des conteneurs identiques ne sont pas placés dans le même pod. Les utilisateurs créent et administrent ces pods par le biais de "jobs".
La plupart des applications en conteneurs exigent une redondance des pods afin de garantir une disponibilité permanente de ces pods. Google Kubernetes Engine comprend un contrôleur de réplication qui permet aux utilisateurs d'exécuter à tout moment le nombre souhaité de doubles de pods.
Des groupes de pods peuvent être organisés en services, afin de permettre aux applications qui ne prennent pas en charge les conteneurs d'accéder à des conteneurs sans nécessiter de code supplémentaire. Par exemple, si une entreprise possède trois pods qui lui servent à traiter les données d'un système client, l'organisation de ces pods en service permet au système client d'utiliser n'importe quel pod à tout moment, quel que soit le pod qui réalise effectivement la tâche.