Google Kubernetes Engine (GKE)
Die Google Kubernetes Engine (GKE), vormals Google Container Engine, ist ein Management- und Orchestrierungs-System für Docker-Container und Container-Cluster, die auf Googles Public-Cloud-Diensten ausgeführt werden. Die Google Kubernetes Engine basiert auf Kubernetes, Googles Open-Source-Containermanagement-System. Unternehmen verwenden die GKE in der Regel für:
- das Erstellen oder Verkleinern von Docker-Containerclustern.
- das Erstellen von Containern, Replikations-Controllern, Jobs, Services oder Load Balancer.
- das Update oder Upgrade von Containerclustern.
- das Anpassen von Applikations-Controllern.
- das Debugging von Containerclustern.
Anwender können über das Kommandozeilen-Tool gcloud oder über die Google Cloud Platform Konsole mit der Google Kubernetes Engine interagieren.
Die Google Kubernetes Engine wird häufig von Softwareentwicklern verwendet, um neue Enterprise-Anwendungen zu testen und zu erstellen. Die Container werden auch von Administratoren verwendet, um Anforderungen an Skalierbarkeit und Performance von Enterprise-Anwendungen erfüllen zu können.
Die Google Kubernetes Engine besteht aus einer Gruppe von GCE-Instanzen (Google Compute Engine), die Kubernetes betreiben. Ein Master-Knoten verwaltet eine Gruppe von Docker-Containern und betreibt auch einen Kubernetes API-Server zur Interaktion mit dem Cluster, um Aufgaben wie zum Beispiel das Abarbeiten von API-Requests durchzuführen und Container zu platzieren. Neben dem Master-Knoten kann ein Cluster auch einen oder mehrere weitere Knoten umfassen, auf denen jeweils die Docker-Runtime sowie ein Kubelet-Agent ausgeführt wird, um Docker-Container zu verwalten.
GKE-Nutzer organisieren einen oder mehrere Container in sogenannten Pods, die logische Gruppen verwandter Container darstellen. Zum Beispiel könnten diese Gruppen Systemcontainer für Logfiles, Checkpoints oder Snapshots sowie zur Datenkompressions umfassen. Auf ähnliche Weise können Netzwerk-Proxies, Bridges und Adapter im gleichen Pod organisiert werden. Normalerweise werden identische Container nicht über den gleichen Pod organisiert. GKE-Anwender verwalten und erstellen diese Pods durch Jobs.
Wenn ein Pod von verwandten Containern nicht mehr verfügbar ist, kann der Zugang zu diesen Containern gestört sein. Die meisten Containeranwendungen setzen eine gewisse Redundanz voraus, um die ständige Verfügbarkeit der Pods zu gewährleisten. Die Google Kubernetes Engine bietet hierfür einen Replikations-Controller, der Benutzern die Möglichkeit gibt, zu jeder Zeit die gewünschte Anzahl an Pod-Dublikaten auszuführen.
Pod-Gruppen wiederum können in Services organisiert werden, so dass nicht-containerfähige Anwendungen ohne Änderungen am Quellcode auf andere Container zugreifen können. Wenn ein Unternehmen zum Beispiel drei Pods nutzt, um Daten von einem Client-System zu verarbeiten, dann können diese drei Pods als Service des Clientsystems konfiguriert werden und es spielt keine Rolle mehr, welcher der drei Pods tatsächlich die Arbeit verrichtet.