Kubernetes ist ein Open Source-System zur Verwaltung von Anwendungen in einer Container-Technologieumgebung. Kubernetes automatisiert die manuellen Prozesse zur Bereitstellung und Skalierung containerisierter Anwendungen. Es kann auch Cluster von Containeranwendungen verwalten, die öffentliche, private und hybride Clouds umfassen.

Der Name Kubernetes ist von der Containerschiff-Analogie inspiriert und baut darauf auf das griechische Wort hin, das in übersetzt wird “Steuermann,” wie in dem, der das Containerschiff steuern muss. Kubernetes wird auch gerufen “kube” und “k8s” Dabei handelt es sich um ein Numeronym, wobei der erste Buchstabe, der letzte Buchstabe und die Anzahl der Buchstaben zwischen diesen Buchstaben verwendet werden.

Geschichte der Kubernetes

Abgesehen von den Ätiologien ist Kubernetes ursprünglich von Google entwickelt worden, da es aus einem internen Projekt Borg mit Containern für die Google Cloud-Technologie entstand. Tatsächlich gibt Google an, über 15 Jahre Erfahrung mit Containern zu haben, und behauptet dies “Milliarden von Containern pro Woche,” Dies gab ihnen viel Erfahrung, die in dieses Softwareprogramm flossen. Kubernetes wurde dann als Seed-Technologie an die Linux Foundation gespendet, um 2015 die Cloud Native Computing Foundation (CNCF) zu gründen.

Kubernetes ist ein Open-Source-Projekt, das offiziell von Microsoft Azure und Google Cloud unterstützt wird. Kubernetes fand erste Akzeptanz bei den Early Adopters, was zu einem stetigen Wachstum führte, und nimmt nun eine herausragende Stellung im Bereich Container-Management-Software ein.

Heutzutage ist die Verwendung mehrerer Container für eine echte Produktions-App üblich, wobei sich die Container auf mehreren Servern befinden. Die Kubernetes-Software ermöglicht die Bereitstellung dieser Container und deren Skalierung auf mehrere Server, um sie an die Arbeitslast anzupassen, einschließlich der Planung der Container innerhalb eines Clusters. Es kann auch dazu beitragen, den Zustand dieser mehreren Container zu verwalten.

Kubernetes-Bereitstellung

Kubernetes wird für eine Gruppe von Containern bereitgestellt, die als Cluster bezeichnet werden. Einer der Container des Clusters wird als Cluster-Master bezeichnet, der die Prozesse der Kubernetes-Steuerungsebene ausführt. Die anderen Container des Clusters werden als Knoten zugewiesen. Hierbei handelt es sich um die Arbeitsmaschinen, die unter die Kontrolle des Cluster-Masters fallen, der als einheitlicher Endpunkt fungiert.

Der Cluster-Master hat die vollständige Kontrolle über seine Knoten, legt deren Lebenszyklus fest, einschließlich der Bewertung des Zustands und steuert Upgrades und Reparaturen für jeden Knoten. In dem Cluster können spezielle Container vorhanden sein, die als Agenten pro Knoten mit bestimmten Funktionen festgelegt werden, z. B. Protokollsammlung oder Intracluster-Netzwerkkonnektivität.

Der Standardwert für einen Knoten besteht darin, dass er eine virtuelle CPU und 3.75 GB RAM aufweist. Dies ist der Standardmaschinentyp der Compute Engine. Für rechenintensivere Aufgaben kann eine niedrigere Basis-CPU-Mindeststufe gewählt werden. Beachten Sie, dass nicht alle Ressourcen des Knotens auf die Anwendung angewendet werden können, für die der Knoten ausgeführt wird. Vielmehr werden einige dieser Ressourcen benötigt, um die Kubernetes Engine auszuführen. Die zuweisbaren Ressourcen des Knotens, die zum Ausführen der Anwendung verwendet werden können, sind die Differenz zwischen den gesamten Ressourcen und der für die Kubernetes Engine reservierten Menge.

Wenn für den Knoten beispielsweise 4 GB RAM verfügbar sind, werden 25% des Speichers für die Kubernetes-Engine reserviert, und die restlichen 75% können zum Ausführen der Anwendung verwendet werden. Wenn dies der Fall ist, werden nur 20% der nächsten 4 GB RAM benötigt Der Knoten verfügt über insgesamt 8 GB RAM. Die Kubernetes Engine benötigt weniger CPU-Ressourcen, da sie nur 6% der Verarbeitungsleistung des ersten Kerns des Knotens und nur 1% eines zweiten Kerns für den Knoten reserviert.

Der Clustermaster führt den Kubernetes-API-Server aus, der Anforderungen verarbeitet, die von Kubernetes-API-Aufrufen der Kubernetes-Software stammen. Der Kubernetes API Server fungiert als "Kommunikationshub" für den gesamten Containercluster.

Kubernetes Funktionen

Zu Kubernetes Beliebtheit tragen seine robusten Funktionen bei. Diese schließen ein:

  • Automatisches Binpacking: Dies automatisiert die Platzierung von Containern basierend auf der effizientesten Ressourcennutzung.
  • Horizontale Skalierung: Anwendungen können mit einem einfachen Befehl vergrößert oder verkleinert werden oder automatisiert werden, um die CPU-Auslastung zu berücksichtigen.
  • Automatisierte Rollouts und Rollbacks: Kubernetes führt in mehreren Schritten Aktualisierungen für die Aktualisierungen der Anwendungen aus und überwacht alle Integritätsprobleme. Wenn dies der Fall ist, wird automatisch ein Rollback auf eine stabilere Version durchgeführt, um die Betriebszeit zu erhalten.
  • Speicher-Orchestrierung: Es funktioniert mit einer Vielzahl von Speicherlösungen für zusätzliche Flexibilität von der lokalen bis zur öffentlichen Cloud.
  • Selbstheilung: Die Fähigkeit, Container, die einfrieren, zu töten und Container, die einfrieren oder ihre Gesundheitsprüfung nicht bestehen, erneut zu starten.
  • Service Discovery und Load Balancing: Kubernetes kann jedem Container eine eigene IP-Adresse mit einem DNS-Namen und die Verteilung der Last zwischen ihnen zuweisen.
  • Secret- und Konfigurationsmanagement: Anwendungen können ohne Image-Neuerstellung aktualisiert werden.
  • Stapelverarbeitung: Verwaltung für Stapel- und fortlaufende Integrations-Workloads.

Reale Weltanwendungen von Kubernetes

Kubernetes wird unter anderem von führenden Unternehmen wie Comcast, eBay, Goldman Sachs, der New York Times und Pokemon Go eingesetzt. Ein Beispiel für die Verwendung von Kubernetes ist der Videoanbieter Sling TV, der nach seinem Start im Jahr 2015 Probleme hatte, als neue Abonnenten ihre vorhandenen Ressourcen übertrafen, als sie versuchten, Live-TV über das Internet zu verbreiten. Um die Kundenerfahrung zu verbessern, und mit dem Wunsch nach mehr Flexibilität - jetzt und in Zukunft -, wurde die Entscheidung getroffen, auf eine Hybrid-Cloud-Strategie umzusteigen. Dabei wurde sowohl ein lokales VMWare-Multi-Rechenzentrum verwendet, das in mehrere öffentliche Clouds integriert ist und über die Kubernetes Engine gesteuert wird.

Laut Brad Linder, dem Sling TV Cloud Native & Big Data Evangelist, “Wir sind an einem Ort, wo wir mit einem Klick ein gesamtes Rechenzentrum bereitstellen können - das Computernetzwerk, das alle Apps protokolliert und überwacht.” Er weist darauf hin, dass die Bereitstellung einer neuen App bereits Tage dauern würde, was nun über die Kubernetes Engine in etwa einer Stunde erledigt werden kann.

Während Kubernetes als internes Projekt bei Google bescheidene Wurzeln hat, hat es sich zu einem dominierenden Player für Containerverwaltungssoftware entwickelt, der zweifellos durch seinen Open-Source-Ansatz gefördert wird. Die Leistungsfähigkeit und Flexibilität der Kubernetes Engine erklärt, warum sie in so vielen verschiedenen Branchen eingesetzt wird.

  • Hier diskutieren wir auch die Containertechnologie