Was macht Kubernetes und wann sollten Sie es verwenden?

0
157

Kubernetes ist ein Tool, das alle beweglichen Teile verwaltet, die beim Ausführen von Apps in Container wie Docker. Dies macht die Skalierung Ihrer Anwendung sehr einfach, da Ihre Serverinfrastruktur vom darauf ausgeführten Code getrennt ist.

Was macht Kubernetes?

< p>Kubernetes wird oft neben Docker erwähnt, aber sie erfüllen jeweils unterschiedliche Aufgaben. Docker packt Anwendungen und alle ihre Abhängigkeiten in einzelne Dateien, sogenannte Container-Images, die auf einem Server ohne manuelle Konfiguration ausgeführt werden können. Die Docker-Engine ähnelt einer virtuellen Maschine, ist jedoch viel schlanker und leistungsfähiger und wurde einfach für die Ausführung einer einzelnen Anwendung in einer isolierten Umgebung entwickelt.

Kubernetes ist eine Orchestrierungs-Engine und bietet eine Plattform zum Ausführen von Docker-Images. Es unterstützt die Verwendung von Docker-Images, da sie bei weitem das beliebteste Containerformat sind. Mithilfe von Containern kann Ihr Code sehr einfach verteilt werden, ohne sich Gedanken darüber machen zu müssen, ob der Server für die ordnungsgemäße Ausführung des Codes konfiguriert ist.

Ein Master-Kubernetes-Server verwaltet einen Cluster von Worker-Knoten. Diese Worker-Knoten können eine beliebige Anzahl von Containern ausführen, die in Kubernetes-Pods verpackt sind. Der Masterserver verarbeitet die Bereitstellung von Pods auf Worker-Knoten und versucht, eine festgelegte Konfiguration aufrechtzuerhalten. Wenn Ihre Anwendung auf mehr Datenverkehr trifft, kann Kubernetes mehr Ressourcen bereitstellen, und wenn auf einem Ihrer Server Probleme auftreten, kann Kubernetes die Pods auf diesem Server in den Rest des Netzwerks verschieben, während Sie das Problem beheben.

Kubernetes-Worker-Knoten, auf denen mehrere Pods ausgeführt werden sie.

Kubernetes bietet zwar viele Funktionen eines Platform as a Service (PaaS)-Systems, stellt jedoch keine Hardware bereit. Kubernetes ist reine Software und Open Source. PaaS-Systeme wie AWS EKS bauen auf Kubernetes auf und bieten in vielen Fällen die Möglichkeit, mehr Ressourcen für sich selbst bereitzustellen (automatische Skalierung).

Warum Kubernetes verwenden?

Kubernetes bringt alle Vorteile von Docker und der Containerisierung im Allgemeinen mit sich. Container helfen dabei, Ihren Code zu organisieren und zu verwalten, mit allen Abhängigkeiten an einem Ort. Ihr Code läuft in einer Entwicklungs- und Testumgebung genauso wie in der Produktion, keine Überraschungen.

Werbung

Die auf der Kubernetes-Plattform ausgeführten Docker-Images sind von der Plattform selbst getrennt und haben keine Ahnung, dass sie in Kubernetes-Pods ausgeführt werden. Diese Entkopplung von Anwendungen von der Infrastruktur macht Kubernetes als Ersatz für Ihren bestehenden Bereitstellungszyklus äußerst leistungsfähig. Sie müssen sich keine Sorgen machen, ob Ihr Code auf Ihren Servern ordnungsgemäß ausgeführt wird.

Ein schneller Entwicklungszyklus erhöht den Druck auf Ihr Ops-Team, sich um die tatsächliche Ausführung Ihres Codes zu kümmern. Wenn Sie jedes Mal, wenn Ihr Code aktualisiert werden muss, Probleme bei der Verwaltung der Installation und Konfiguration Ihrer App auf Ihren Servern haben, kann dies mit Kubernetes viel schneller werden.

Und wenn Sie die Konfiguration und Verwaltung von Servern wirklich nicht mögen, kann ein verwalteter Kubernetes-Service wie AWS EKS dieses Problem beheben und Ihre App “serverlos”

Wie fange ich an?

Kubernetes ist serviceunabhängig, sodass Sie es bei Bedarf selbst auf Ihren eigenen Servern einrichten können. Kubernetes ist jedoch ziemlich kompliziert, daher gibt es viele schlüsselfertige Lösungen der großen Cloud-Anbieter, die ihre Ressourcen verwenden, um Ihre Worker-Knoten zu betreiben. Sie werden alle Kubernetes-kompatibel sein, sodass Sie mit minimalen Problemen zwischen ihnen wechseln können.

Wenn Sie es selbst einrichten möchten, können Sie dies mit kubeadm . tun Werkzeugkasten. Um kubeadm auszuführen, benötigen Sie einen Mastercomputer, der einen oder mehrere Worker-Computer steuert, auf denen kubelet ausgeführt wird. Der Mastercomputer verwaltet die Bereitstellung des Containers auf den Arbeitscomputern. Weitere Informationen finden Sie in der Anleitung zu den ersten Schritten in den Kubernetes-Dokumenten, aber seien Sie auf eine Nacht der Konfiguration vorbereitet.

Werbung

AWS EKS ist die Lösung von Amazon, die Kubernetes-Apps in mehreren AWS-Verfügbarkeitszonen ausführen kann. EKS erfordert nicht viel Konfiguration; Sie müssen lediglich neue Knoten bereitstellen. Sie zahlen 0,20 USD pro Stunde (150 USD pro Monat) für jeden ausgeführten Cluster sowie für die EC2- und EBS-Ressourcen, die Ihre Worker-Knoten verbrauchen.

Wenn Sie keinen vollständigen Kubernetes-Cluster benötigen, aber dennoch containerisierte Apps ausführen möchten, können Sie AWS Elastic verwenden Containerdienst (ECS). ECS führt Docker-Container aus und verfügt über ein eigenes Skalierungssystem.

Microsofts Azure Kubernetes Service (AKS) ist ein verwalteter Kubernetes-Dienst, der sich gut in eine Azure-Pipeline integrieren lässt und so den Einstieg in den Code erleichtert in der Quellcodeverwaltung für Container, die in Ihrem Kubernetes-Cluster bereitgestellt werden.

Google ist der ursprüngliche Entwickler von Kubernetes, daher bieten sie natürlich einen verwalteten Kubernetes-Dienst über die Google Cloud Platform an.