Kubernetes ist eine Plattform zur Verwaltung containerisierter Anwendungen. Dies geschieht durch die Bereitstellung von APIs, mit denen Sie steuern und verwalten können, wie Ihre containerisierten Anwendungen bereitgestellt, skaliert und organisiert werden. Kubernetes kann On-Premises oder in der Cloud verwendet werden und ist derzeit die beliebteste Plattform für die Verwaltung containerisierter Anwendungen.
Einer der wichtigsten Vorteile von Kubernetes ist die Fähigkeit, Ihre Anwendungen zu skalieren. Kubernetes kann Ihre Anwendungen basierend auf CPU-Auslastung, Speichernutzung oder anderen Metriken automatisch skalieren. So wird sichergestellt, dass Ihre Anwendung immer verfügbar ist und den Anforderungen Ihrer Benutzer entspricht.
Kubernetes ist ein leistungsstarkes Tool, mit dem Docker-Container verwaltet und orchestriert werden können. Mit Kubernetes können Sie eine eigenständige Umgebung für Ihre Anwendungen erstellen, die alles enthält, was für deren Ausführung erforderlich ist. Dies kann aus der Anwendung, Abhängigkeiten, Bibliotheken und Konfigurationsdateien bestehen.
Mit Kubernetes können Sie Ihre Anwendungen auch nach Bedarf vertikal oder horizontal skalieren, um sicherzustellen, dass sie immer über die Ressourcen verfügen, die für eine effiziente Ausführung erforderlich sind. Darüber hinaus bietet Kubernetes viele Features zur einfacheren Verwaltung von Docker-Containern, z. B. fortlaufende Updates und Zustandsprüfungen.
Kubernetes bietet ein Spektrum an Ressourcen, Services und Tools für das Anwendungsmanagement. Einige der am häufigsten verwendeten Optionen werden nachstehend erläutert.
Kubernetes verfügt über eine Ressource namens Ingress, die für eine Vielzahl von Funktionen verwendet wird, einschließlich als Load Balancer. Mit Load Balancing über Ingress können Sie Traffic auf eine Gruppe von Pods verteilen und sie als einzelnen Service bereitstellen. Dadurch können Sie sowohl die Verfügbarkeit als auch die Performance Ihrer Anwendungen verbessern.
Der Load Balancer überprüft die Header jeder empfangenen Anfrage. Er wählt einen Pod basierend auf dem Ziel der Anforderung und den definierten Regeln aus. Anschließend leitet er die Anfrage an diesen Pod weiter.
Der Load Balancer unterstützt auch Zustandsprüfungen, sodass Sie eine Reihe von Kriterien angeben können, die für einen Pod erfüllt sein müssen, bevor der Load Balancer Anfragen an ihn sendet. Wenn ein Pod die Anforderungen nicht erfüllt, sendet der Load Balancer keine Anfragen mehr an ihn.
Sie können den Load Balancer auch verwenden, um Datenverkehr basierend auf der Quell-IP-Adresse der Anfrage weiterzuleiten. Dies kann nützlich sein, wenn Sie den Zugriff auf Ihre Anwendungen von bestimmten Quellen einschränken.
Kubernetes-Networking funktioniert durch das Erstellen von Pods und Services. Ein Pod ist eine Gruppe aus einem oder mehreren Containern, die zusammen bereitgestellt werden und einen gemeinsamen Netzwerk-Namespace und eine gemeinsame IP-Adresse haben.
Container innerhalb eines Pods können über einen „localhost“ miteinander kommunizieren.
Services werden verwendet, um einen oder mehrere Pods der Außenwelt zugänglich zu machen. Services werden als Load Balancer implementiert und können den Datenverkehr über mehrere Pods verteilen.
Der Kubernetes-Scheduler ist ein wichtiger Bestandteil des Kubernetes-Systems. Der Service ist für die Zuweisung von Ressourcen zu Pods und die erfolgreiche Ausführung verantwortlich.
Der Scheduler weist jedem Pod eine Priorität zu und sucht nach Knoten mit ausreichend Ressourcen, um den Pod aufzunehmen. Wenn keine Ressourcen verfügbar sind, kann der Planer einen Knoten mit Pods höherer Priorität zuweisen. Dies berücksichtigt auch die unterschiedlichen Prioritäten der Pods, um die Zuweisung vorzunehmen. Im Allgemeinen werden beim Zuweisen von Pods zu einem Knoten die Knoten mit der niedrigsten Priorität verwendet, um Unterbrechungen und Bevorrechtigung zu minimieren. Wenn es keine Knoten mit genügend Ressourcen gibt, wartet der Scheduler, bis einer verfügbar wird.
Darüber hinaus ist der Scheduler für den Neustart von Pods verantwortlich, die ausgefallen sind. Wenn ein Pod ausfällt, setzt der Scheduler ihn auf einem anderen Knoten fort. Dadurch wird sichergestellt, dass der Pod immer Zugriff auf die Ressourcen hat, die er für eine erfolgreiche Ausführung benötigt.
Kubernetes-Autoscaling ist ein großartiges Feature, mit dem Sie Ihre Pods basierend auf der CPU-Auslastung oder anderen Metriken automatisch nach oben oder unten skalieren können. Beim Autoscaling können Sie eine optimale Anzahl von Pods in Ihrem Cluster beibehalten und so die Performance und Stabilität Ihrer Anwendungen verbessern.
Es gibt zwei Arten von Kubernetes-Autoscaling: horizontal und vertikal.
Beim horizontalen Autoscaling werden Ihre Pods nach oben oder unten skaliert, indem Knoten zu Ihrem Cluster hinzugefügt oder daraus entfernt werden. Im Gegensatz dazu skaliert das vertikale Autoscaling Ihre Pods nach oben oder unten, indem die CPU- oder Speichergrenzen einzelner Pods geändert werden.
Kubernetes-Autoscaling basiert auf zwei Konzepten: Skalierungs-Trigger und Skalierungs-Policys. Eine Skalierungsmotivation ist eine Bedingung, die Kubernetes veranlasst, Ihre Pods nach oben oder unten zu skalieren. Eine Skalierungs-Policy ist eine Aktion, die Kubernetes ausführt, wenn ein Skalierungs-Trigger auftritt.
DNS steht für Domain Name System und ist ein System, mit dem menschenlesbare Domainnamen in die von Computern verwendeten numerischen IP-Adressen übersetzt werden. Kubernetes verwendet DNS, um seine Services zu verwalten. Jeder Service in Kubernetes hat einen eindeutigen DNS-Namen. Wenn Sie einen Service erstellen, erstellt Kubernetes einen DNS-Eintrag für diesen Service. Der DNS-Eintrag enthält die IP-Adresse des Services und die Portnummer. Kubernetes verwendet diese Informationen, um Datenverkehr an den Service weiterzuleiten.
Der DNS-Name eines Services besteht aus zwei Teilen:
Der Domainname ist der Teil des DNS-Namens, der allen Services in der Domain bekannt ist. Und der Servicename ist der Teil des DNS-Namens, der für jeden Service eindeutig ist.
Für Unternehmen, die Kubernetes verwenden, optimiert Oracle Container Engine for Kubernetes Prozesse und reduziert Budgets für die Entwicklung Cloud-nativer Anwendungen. Als Teil der Oracle Cloud Infrastructure bietet Oracle Container Engine for Kubernetes leistungsstarke Funktionen ohne zusätzliche Kosten. Beginnen Sie jetzt mit einer kostenlosen Testversion von Oracle Cloud Infrastructure.