Containerisierte Anwendungen in beliebigen Umgebungen koordinieren und bereitstellen
Kubernetes ist eine Open-Source-Lösung, die die Bereitstellung, Skalierung und Überwachung containerisierter Anwendungen automatisiert.
Bei einem Container handelt es sich um Software, die von der zugrunde liegenden Infrastruktur getrennt ist. Mit Containern erfolgt die Virtualisierung auf Betriebssystemebene. Das heißt, unabhängig davon, wo eine Anwendung ausgeführt wird, sie funktioniert immer gleich.
Die meisten Container werden heute auf einer Kubernetes-Plattform ausgeführt. Nach Angaben des Unternehmens: „Kubernetes stellt eine containerorientierte Managementumgebung bereit. Die Lösung koordiniert die Datenverarbeitungs-, Netzwerk- und Speicherinfrastruktur für Benutzerworkloads und ermöglicht Portierbarkeit über Infrastrukturanbieter hinweg.“ ⁽¹⁾
Kubernetes-Grundlagen
Kubernetes hatte seine Anfänge bei Google, wo ein Team von Entwicklern ein Cluster-Managementsystem namens Borg entwickelte. Im Jahr 2014 führte das Unternehmen eine Open-Source-Version von Borg namens Kubernetes ein.⁽²⁾
Die erste Version von Kubernetes wurde im Jahr 2015 veröffentlicht, um Containerorchestrierung für verteilte Anwendungen bereitzustellen. Parallel zu dem Release arbeitete Google mit der Linux Foundation zusammen, um die Cloud Native Computing Foundation zu gründen, und bot Kubernetes als Seed-Technologie an.⁽³⁾
Seit seinem Debüt ist Kubernetes immer beliebter geworden, da es Entwickler dabei unterstützt, systemübergreifende Portierbarkeit auf der Basis von Containertechnologie zu erreichen. Mit mehr als 1.400 Mitwirkenden ist die Kubernetes Open-Source-Community heute eine der größten der Welt.
Docker ist die am häufigsten verwendete Containertechnologie, aber Kubernetes unterstützt auch andere. Docker definierte Vorlagen zur Paketierung von Software in standardisierten Einheiten, die alle Elemente für die Ausführung einer Anwendung enthielten.
Kubernetes koordiniert die Containerumgebung bei gleichzeitiger Optimierung von Serverauslastung und Speicherplatz. Die Lösung verwaltet, wo und wie Container bereitgestellt werden, indem Features wie intelligente Zeitplanung, Lastausgleich, Skalierbarkeit, Speichermanagement und Stapelausführung verwendet werden.
Zentrale Konzepte:
- Die grundlegende Kubernetes-Managementeinheit ist ein Pod oder eine Gruppe von Containern. Container in einem Pod teilen sich Speicher, Ressourcen und IP-Adresse.
- Ein Kubernetes-Cluster besteht aus Master- und Workerknoten. (Ein Knoten ist der Host oder Server, auf dem ein Container ausgeführt wird; es kann sich um eine virtuelle oder physische Maschine handeln.)
- Ein Masterknoten verwaltet die Container-Workload und steuert die Kommunikation über das System hinweg. Er enthält einen Scheduler, der Leistung, Kapazität und Verfügbarkeit steuert.
- Workerknoten führen die Pods gesteuert vom Masterknoten aus.
- Mit Konfigurationsdateien können Teams Verarbeitungsparameter wie die Anzahl Pods, die gleichzeitig ausgeführt werden können, angeben. Mithilfe von Kubernetes können Ressourcen in einem gesamten Rechenzentrum so verwaltet werden als handle es sich um ein einziges System.
Kubernetes im Vergleich zu Docker: Es ist kein Entweder-oder-Frage
Warum Kubernetes wichtig ist
Umfangreiche Unternehmensanwendungen können eine große Anzahl Container enthalten. Diese Art von Architektur kann schnell komplex werden.
Unternehmen müssen in der Lage sein, alle beweglichen Teile in einer Containerumgebung zu koordinieren, vorzugsweise von einem zentralen Ort aus. Viele entscheiden sich für Kubernetes als Lösung.
Kubernetes verwaltet das Ökosystem und passt Datenverarbeitung und Speicher an, um sicherzustellen, dass Container verfügbar sind und effizient bereitgestellt werden. Entwickler können währenddessen jederzeit sehen, wo sich alle Komponenten befinden.
Kubernetes kann Unternehmen dabei unterstützen, die Bereitstellung neuer Anwendungen zu vereinfachen, Container- und Ressourcenmanagement zu optimieren, Upgrade-Risiken zu reduzieren und Ausfallzeiten zu vermeiden. Die Lösung kann Anwendungskomponenten einzeln oder als Gruppe skalieren und portierbare cloudnative Anwendungen unterstützen.
In seinem IBM Blog skizziert Matt Johnsen einige der Vorteile:
- Kosteneinsparungen: Kubernetes-Cluster sind für den geringen Wartungsaufwand bekannt. Teams müssen keine eigenen Container-Automationsscripts schreiben. Sie können eine gemeinsame Infrastruktur nutzen. Sie können die Hardwarekosten reduzieren, indem sie aktuelle Hardware effektiver nutzen.
- Kürzere Entwicklungszeit: Kubernetes eignet sich perfekt für DevOps. Gutes Containermanagement bedeutet, dass die Bereitstellung fast immer problemlos erfolgt, solange die Software ausgeführt wird.
- IT-Flexibilität: In modernen Unternehmen wird Software auf einer beliebigen Anzahl privater und gemeinsam genutzter Infrastrukturen ausgeführt. Die Verwendung einer Containermanagementlösung bedeutet, dass Teams keine Einschränkungen bei der Leistung hinnehmen oder größere Anpassungen vornehmen müssen, um Anwendungen zu verschieben. Sie können Software überall dort ausführen, wo das Unternehmen sie benötigt.
Ein weiterer Vorteil von Kubernetes ist die horizontale Skalierung, die dazu beitragen kann, sich verändernden Leistungsanforderungen anzupassen.
„Wenn Sie bereits die Vorteile von Docker und Containern mit Ihren Anwendungen nutzen, kann die Migration auf Kubernetes Sie dabei unterstützen, einen Teil der Betriebsgemeinkosten einzusparen, die für praktisch alle Anwendungen anfallen, wenn skaliert wird“, so Sai Vennam, IBM Developer Advocate.
Kubernetes als Service
Unternehmen können ein internes Kubernetes-System verwenden, um ihre Containerbereitstellungen zu koordinieren. Alternativ kann ein Service-Provider eine Kubernetes-basierte Plattform oder Infrastruktur als Service anbieten.
Kunden profitieren von der gleichen Funktionalität, jedoch mit weniger Komplexität und Gemeinkosten. Jason McGee, VP und IBM Fellow, IBM Cloud, gibt Folgendes zu bedenken:
„Die Installation, Verbindung und Konfiguration einer Ressourcengruppe in einem funktionierenden Container-Cluster ist nicht einfach. Es sind Arbeitszeit und entsprechendes Wissen erforderlich. Was, wenn Sie der Containerumgebung Kapazität hinzufügen oder aus der Containerumgebung Kapazität entfernen müssen? Wie erfolgt eine Wiederherstellung, wenn Fehler auftreten? Container und Kubernetes verändern sich rasant.
„Es ist schwer, Schritt zu halten, wenn man sich selbst darum kümmert. Einer der Vorteile eines Managed Service ist, dass Ihnen diese Arbeit abgenommen wird und Sie sich einfach auf Ihre Anwendungen konzentrieren können“.⁽⁴⁾
Ein Managed-Service-Provider wie IBM kontrolliert die Datenverarbeitungs-, Netzwerk- und Speicherressourcen in jedem Knotencluster. Der IBM Service bietet intelligente Planung, vereinfachtes Cluster-Management, Containersicherheits- und Isolationsrichtlinien sowie Infrastrukturupgrades.
IBM Kunden können den Kubernetes-Service auch in einer Bare-Metal-Cloudinfrastruktur verwenden. Dies bietet Agilität und Geschwindigkeit für Anwendungen, die eine sehr hohe Rechenleistung erfordern, wie z. B. Workloads für maschinelles Lernen oder KI.
„Entwickler können jetzt Bare-Metal-Maschinenkonfigurationen auswählen, die ihren Anforderungen entsprechen (z. B. Isolation, höhere Verarbeitungskapazität oder umfangreicher lokaler Plattenspeicher), während sie die Vorteile von Containern nutzen, beispielsweise die einfache Migration von Daten zwischen Systemen oder die gleichzeitige Arbeit mehrerer Teammitglieder an verschiedenen Anwendungskomponenten“, so McGee.
Die Weather Company skaliert Web-Services, um Menschen zu schützen
Kubernetes-Ressourcen
Was sind Container und warum brauchen Sie sie?
Informieren Sie sich, was Container sind und warum Unternehmen damit arbeiten
Kubernetes-Nutzung und die Bedeutung von Application Performance Management
Kubernetes im Vergleich zu Docker: Warum nicht beides?
Erfahren Sie mehr über die Unterschiede zwischen Kubernetes und Docker
IBM bringt mit verwaltetem Kubernetes auf Bare-Metal-Systemen die Einfachheit von Containern in komplexe Workloads
Von Watson lernen: Wie Container KI-Workloads skalieren
Hier erfahren Sie, warum KI-Workloads anders sind und sich für die Cloud besser eignen
IBM Cloud Service mit Outlyer überwachen
Relevanter Service
1. https://kubernetes.io/docs/concepts/overview/what-is-kubernetes/
2.https://blog.risingstack.com/the-history-of-kubernetes/
3.https://en.wikipedia.org/wiki/Kubernetes
4.https://softwareengineeringdaily.com/2017/11/29/how-ibm-runs-its-cloud-with-jason-mcgee/