fotogestoeber - Fotolia
Wie man das Optimum aus Managed Kubernetes herausholt
Kubernetes hat viel zu bieten. Doch dessen Vorteile lassen sich nur mit dem richtigen Service-Management-Angebot nutzen. Fünf Tipps für einen optimalen Ansatz.
Es gibt viele Möglichkeiten, Kubernetes in der Cloud zu betreiben. Die Herausforderung dabei ist, den besten Ansatz zu finden.
Kubernetes hat an Popularität gewonnen, seit Entwickler versuchen, die Orchestrierung von Docker-Containern zu vereinfachen. Das führte allerdings zu einem komplexeren Management, weshalb viele Anbieter den Markt mit Managed Kubernetes Services überschwemmen. Infolgedessen müssen IT-Abteilungen die Feinheiten dieser Services selbst durchgehen, um die richtige Lösung zu finden.
Die folgenden Tipps helfen dabei zu verstehen, was AWS, Google und Microsoft für verwaltete Kubernetes-Dienste anbieten. Außerdem unterstützen sie bei der Frage, ob man mit einer Cloud-unabhängigen Architektur besser dran ist.
Vor- und Nachteile von Managed Kubernetes Services
Bevor Sie eine Checkliste erstellen und die Cloud-basierten Angeboten vergleichen, sollten Sie entscheiden, ob Sie überhaupt einen der verwalteten Kubernetes-Dienste benötigen. Diese Produkte bieten Konsistenz und solide Verfügbarkeit und können problemlos mit anderen nativen Services in ihren jeweiligen Cloud-Umgebung verknüpft werden. Aber sie sind oft eine schlechte Wahl für Unternehmen, die Anwendungen planen, die mehrere Cloud-Anwendungen überspannen oder mit ihren eigenen Rechenzentren synchronisieren.
Zuerst müssen Sie Ihre Bereitstellung planen und alle Umgebungen bestimmen, die Sie für das Hosting Ihrer Workloads verwenden möchten. Man sollte sich für diese Art von Cloud-spezifischen Dienste entscheiden, wenn man plant, an einer Plattform festzuhalten, oder ein statisches Modell hat, das die Workloads klar nach Umgebung trennt. Diejenigen mit einem dynamischen Setup können immer noch einen Managed Kubernetes Service nutzen, doch sie sind besser dran mit einem Cloud-agnostischen Framework, das auf Basis von AWS, Microsoft Azure und Google Cloud Platform funktioniert.
Kubernetes und Multi Cloud
Die Portabilität von Anwendungen ist einer der Hauptvorteile von Containern und Kubernetes. Cloud-spezifische Kubernetes Managed Services beeinträchtigen diese Fähigkeiten jedoch, da sie jeweils eigene Konfigurationen und Schnittstellen haben. Es gibt jedoch Workarounds.
Ein Unternehmen kann einen föderierten Ansatz verwenden, um Workloads über verschiedene Cloud-Umgebungen hinweg zu synchronisieren und es Clustern zu ermöglichen, Backend-Services gemeinsam zu nutzen. Dies erfordert die gleiche Konfiguration, unabhängig davon, wo die Container gehostet werden. Dies kann mit Tools wie Kubefed und Kubernetes Anywhere erreicht werden. Ein IT-Team benötigt mehr Zeit und Fachwissen für diesen Ansatz. Es kann sich für Unternehmen aber lohnen, die sich vor einem Vendor Lock-in fürchten.
Platform9 und StackPointCloud sind Beispiele für Kubernetes Management-Tools, die Cloud-fähig sind, und es gibt mehrere PaaS-Angebote, darunter Cloud Foundry und OpenShift, die Kubernetes integriert haben und sich mit allen großen Cloud-Anbietern integrieren lassen.
AWS versus Azure
Diejenigen, die sich für den herstellerspezifischen Ansatz entscheiden, müssen eine Plattform auswählen. Die einfachste Wahl ist es, bei einer Cloud-Anwendung zu bleiben, auf der man sich bereits befindet. Doch das ist unter Umständen nicht die beste Wahl. Beginnen wir mit einem Vergleich der Angebote von AWS und Azure – den beiden größten Cloud-Anbietern am Markt.
Azure Kubernetes Service (AKS) hat Einschränkungen bei der Autoskalierung und installiert nicht automatisch die neueste Kubernetes-Version. Seine Befehlsstruktur macht es jedoch einfach, diese Aufgaben manuell auszuführen.
AWS war der letzte große Cloud-Anbieter, der einen verwalteten Kubernetes-Service eingeführt hat, und unterhält immer noch den Amazon Elastic (EC2) Container Service, der auf einer proprietären Orchestrierungsschicht basiert. Der Amazon Elastic Container Service for Kubernetes (EKS) weist deutliche Designunterschiede zu AKS auf, einschließlich zusätzlicher Ausfallsicherheit durch automatischen Scheduler und Kontrollverteilungen über Verfügbarkeitszonen hinweg.
AKS Networking
Auch wenn es sich um Managed Services handelt, müssen IT-Teams dennoch einige Kubernetes-Grundlagen verstehen. Zum Beispiel müssen AKS-Benutzer entweder Basic oder Advanced Networking wählen, und eine falsche Wahl kann zu höheren Rechnungen und geringerer Leistung führen.
Basic Networking in AKS ist einfacher zu bedienen und basiert auf dem Kubenet-Plugin zur Verwaltung der Containernetzwerk-Schnittstelle. Benutzer haben jedoch mit dieser Option keine Kontrolle über die Netzwerkkonfiguration für ihre Cluster, was bedeutet, dass sie diese nicht mit Azure Virtual Networks (VNets) verwenden können. Umgekehrt unterstützt Advanced Networking VNets, das die Kommunikation zwischen Kubernetes-Pods innerhalb eines Clusters oder anderen Rechenknoten innerhalb desselben privaten Netzwerks ermöglicht.
Die Benutzer müssen außerdem darauf achten, wie sie Kundenüberwachung, Protokollierung und Zugriffskontrolle konfigurieren.
Auswahl des Google Cloud Containers
Kubernetes würde ohne Google nicht existieren. Die Software basiert auf einer eigenen internen Technologie und wurde von Google als Open Source zur Verfügung stellt. Google war auch das erste Unternehmen, das einen Managed Kubernetes Service anbot, als es Google Kubernetes Engine einführte. Das Unternehmen unterstützt Cluster-Management über Google Cloud Console, Google Cloud Shell, kubectl und Cloud Tools for PowerShell. Es gibt außerdem viele Open Source Tools auf GitHub, mit denen sich Zeit sparen lässt, einschließlich Minikube und kubeadm.
Jedes dieser Management-Tools hat seine Vor- und Nachteile, daher sollten Benutzer dasjenige auswählen, mit dem sie sich am wohlsten fühlen und das ihren Bedürfnissen am besten entspricht. Beispielsweise können diejenigen, die mit Kubernetes nicht vertraut sind, besser von der Google Cloud Console und der Google Cloud Shell bedient werden, während sich ein erfahrener Kubernetes-Administrator eher für Kubectl entscheidet.