Managed Kubernetes 101: Der Einstieg

Die Komplexität des Aufbaus eines eigenen Kubernetes ist so ziemlich jedem bekannt. Eine Kubernetes-Installation allein reicht in der Regel nicht aus, denn der Teufel steckt im Detail: die Verwaltung aller Bestandteile eines Clusters. 

 

Unsere Blog-Reihe „Managed Kubernetes 101“ soll insbesondere Software- und Systemarchitekten Schritt für Schritt zeigen, welche Erweiterungen für Kubernetes existieren und einen allgemeinen Einblick in die jeweiligen Themenbereiche geben.

In unserem Blogpost „Kubernetes einfach erklärt: Antworten vom Techie für den Noobie“ findet Ihr zusätzlich ein kleines Kubernetes Basis-Wiki – inklusive Partywissen für StarTrek Fans! 

Aber was genau bedeutet das?

Um die tatsächliche Nutzung von Kubernetes in der Masse der Erweiterungen zu erleichtern, stellen wir die passenden Komponenten für Netzwerk-, Speicher- oder Metrik-Management zur Verfügung.

 

Besonders die Herausforderung, Wissen in den verschiedensten IT-Bereichen auf wenige Personen zu konzentrieren ist der wohl ausschlaggebendste Grund für uns, weiterhin an unserem Full-Managed-Gedanken festzuhalten und Technik mit Kundenbetreuung in Einem bereitzustellen.

 

Um zu verstehen, warum Kubernetes solch ein Allerlei für den optimalen Betrieb benötigt, muss man zunächst verstehen, wie sich die Ersteller ihr eigenes Werkzeug vorstellen.

Ein Kubernetes macht noch keinen Cluster – oder – Let’s start the Architecture Mesh!

Beginnen wir mit einem Zitat von kubernetes.io:

„Kubernetes ist eine portable, erweiterbare Open-Source-Plattform zur Verwaltung von containerisierten Arbeitslasten und Services, die sowohl die deklarative Konfiguration als auch die Automatisierung erleichtert.“

Quelle: https://kubernetes.io/de/docs/concepts/overview/what-is-kubernetes/

Ziel ist es also, eine Plattform für das Workload- und Service-Management zu schaffen, die unabhängig vom Betriebssystem läuft und mit Tools von Drittanbietern erweitert werden kann. Der Vorteil soll dabei sein, dass die Erstellung und Nutzung von Konfigurationen und Automatisierungen erleichtert wird.

Hier beginnt also der Anspruch; die großen Vorteile und die kleinen Einschränkungen. Kubernetes ist eine Plattform zur Verwaltung, nicht zur Ausführung von Anwendungen. Um die betrieblichen Bedürfnisse abzudecken, wird zusätzliche Software für andere Komponenten benötigt.

Kubernetes – Die Plattform zur Verwaltung von Anwendungen

In seiner Grundstruktur braucht Kubernetes, abgesehen von den Abhängigkeiten für die Installation von Kubelet, auf jedem Server im Cluster eine sogenannte Container Runtime. Als Beispiel ist Docker wohl der bekannteste Vertreter. Darüber hinaus verwaltet Kubernetes beliebige Anwendungen in einem separaten Netzwerksegment.

Kubernetes liefert bereits CoreDNS mit etcd als Coordination and Service Discovery und Flannel als Netzwerkdienst. Während CoreDNS und etcd die IP-Verwaltung gut handhaben und die meisten Funktionen von Kubernetes beherrschen, handelt es sich bei Flannel um ein einfaches Overlay-Netzwerk, sodass Plugins mit weiteren, besonders sicherheitsspezifischen Funktionen empfohlen werden. Canal bzw. Calico sind hier bekannte Vertreter.

Mit den drei BasisTools, z. B. Canal, CoreDNS und Docker, ist Kubernetes vorerst lauffähig, aber für einen Anwendungsbetrieb in Kubernetes fehlt noch die eine oder andere Schicht. Hier sind weitere Komponenten notwendig, die Schritt für Schritt installiert, konfiguriert und in Ihr eigenes Service Life Cycle Management integriert werden können.

Welche Tools sind die praktikabelsten? 

Mit jedem zusätzlichen Tool erhöht sich natürlich der Betriebsaufwand. Und da jedes Einzelne ein größeres Themenspektrum abbildet, drängt sich die Frage auf, ab wann sich Kubernetes im Eigenbetrieb nicht mehr lohnt. Darüber hinaus stellt sich auch vielen die spannende Frage, wie viel von der in der Software eingebauten Logik auf einen individuellen Dienst übertragbar ist und damit das selbstgeschriebene Programm verschlankt werden kann.

Die Cloud Native Computing Foundation, kurz CNCF, hat einen guten Überblick darüber gegeben, welche Werkzeuge es in einer typischen Cloud-Umgebung gibt, und für jeden Anwendungsbereich die praktikabelsten vorgestellt.

Ähnlich wie bei der CNCF werden wir uns die einzelnen Schichten genauer ansehen: Laufzeit, Orchestrierung & Management, App-Definition & Entwicklung und schließlich die Bereitstellung.

Da die Landschaft trotz Portabilität je nach Betriebssystem sehr unterschiedlich sein kann, werden die Themen auf Linux-Basis erklärt. Eine Windows-basierte Sicht ist nicht Bestandteil der Beiträge.

Und so geht es weiter

Im nächsten Beitrag beginnen wir mit der Runtime. Diese beinhaltet alle notwendigen Komponenten, die Kubernetes benötigt. Wenn ihr nicht warten wollt, sind wir immer bereit, dieses Thema für Euch zu übernehmen. Sprecht uns einfach an!

Share: