Multi-Tool für die Container-Orchestrierung Cluster-Management mit Kubernetes

Autor / Redakteur: Andreas Bachmann * / Stephan Augsten

Kubernetes gilt bei der Orchestrierung von Container-Clustern als De-Facto-Standard. Nahezu jede Container-Plattform integriert K8s oder besitzt auf dessen Open-Source-Basis eine eigene Distribution. Aber was macht das Projekt so erfolgreich?

Firmen zum Thema

Bei der Einführung von Kubernetes steht unter anderem das Thema Sicherheit im Fokus.
Bei der Einführung von Kubernetes steht unter anderem das Thema Sicherheit im Fokus.
(© shane - stock.adobe.com)

Container-Technologie hat sich in den vergangenen Jahren immer stärker als Alternative zum Betrieb virtueller Server durchgesetzt. Virtuelle Betriebssysteme, Treiber und Systemdateien verursachen starken Overhead, ein großer Teil der verfügbaren Ressourcen wird allein dadurch verbraucht, die virtuellen Maschinen (VM) zur Verfügung zu stellen.

Container teilen sich die meisten Betriebssystemdateien mit dem Server, der die Container hostet. So können komplexe Datensysteme mit relativ geringem Ressourcenverbrauch betrieben werden. Die Funktionen komplexer Applikationen werden auf mehrere Container verteilt – beispielsweise indem das Web-Front-End in einem Container und der Caching-Server in einem weiteren Container ausgeführt werden.

Damit aus den zahlreichen Containern eine ablauffähige Anwendung wird, ist aber eine höhere Instanz notwendig. Kubernetes – kurz K8s – hat sich hier neben „Docker Swarm“ und „Apache Mesos“ als führende Plattform zur Orchestrierung von Containern etabliert.

Die ursprünglich von Google entwickelte Plattform läuft heute als Open-Source-Projekt der Cloud Native Computing Foundation (CNCF). Mehr als 80 Anbieter – darunter Microsoft Azure, IBM Cloud, Red Hat OpenShift, AWS und Oracles OCI – haben Kubernetes-Anwendungen im Portfolio.

Die Funktionsweise von Kubernetes

Kubernetes orchestriert sogenannte „Pods“ als kleinste Einheit. Unter Pods werden die Workload-Prozesse verstanden, die auf „Nodes“ (physische oder virtuelle Maschinen in einem Cluster) laufen. Sie beinhalten einen oder mehrere Container. Der Cluster mit seinen Nodes wird über mehrere „Kubernetes Master“, gesteuert. Diese kommunizieren mit den einzelnen Nodes und den auf ihnen laufenden „Kubelets“.

Auf den Kubernetes-Mastern läuft jeweils eine Instanz des „etcd“, der zentralen Schlüssel-Wert-Datenbank für sämtliche für das Management des Clusters wichtigen Informationen sowie der Controllermanager und ein „Scheduler“, der neu erzeugte Pods Nodes zuteilt. Die Controller überwachen und steuern den Cluster und seine Bestandteile. Außerdem läuft auf den Mastern der API-Server, das wichtigste Element in Kubernetes.

Innerhalb von Kubernetes dienen verschiedene Tools der Orchestrierung von Containern. Die Plattform erleichtert die bedarfsorientierte Skalierung von Anwendungen, die Verwaltung dynamischer Änderungen an vorhandenen Container-Anwendungen und die Optimierung der zugrunde liegenden Hardware.

Kubernetes ist erweiterbar und fehlertolerant: Anwendungskomponenten können je nach Bedarf neu gestartet und systemübergreifend verschoben werden. Die Plattform unterstützt die Auswahl von Anwendungs-Frameworks, Sprachen, Überwachungs- und Protokollierungswerkzeugen.

Compliance-Richtlinien integrieren

Sicherheit in Kubernetes fokussiert sich auf Compliance- und Policy-Kontrollen.
Sicherheit in Kubernetes fokussiert sich auf Compliance- und Policy-Kontrollen.
(Bild: Adacor)

Bei der Einführung von Kubernetes steht neben grundsätzlichen Fragestellungen das Thema Sicherheit im Fokus. Dabei geht es vor allem darum, wie interne Compliance- und Sicherheitsvorgaben in Kubernetes eingebunden werden können.

Eine entsprechende Lösung, die bei der Sicherheit in der Containerorchestrierung helfen kann, sind Policies wie die Network Policies (Netzwerkrichtlinien) oder die Pod Security Policies (Pod-Sicherheitsrichtlinien, PSP). Zusätzlich gewinnt der Open Policy Agent (OPA) an Bedeutung.

Die Thematik verstärkt sich bei Unternehmen, die agile Frameworks wie SAFe im Einsatz haben. Dann sind die verantwortlichen IT-Teams gezwungen, die einzelnen Releases für die Infrastruktur und Applikationen mit höherer Schnelligkeit zu entwickeln und auszurollen. In Bezug auf Sicherheit und Testing müssen im Entwicklungsprozess und in der Infrastruktur verschiedene Aspekte des „Shift left“ berücksichtigt werden.

Einzelne Punkte dieser Bereiche werden dabei im Lebenszyklus nach vorne, also auf dem Zeitstrahl nach links gebracht. Um die damit verbundenen Risiken von vornherein gering zu halten, sollten grundlegende Sicherheitsrichtlinien frühzeitig im CI-/CD-Lifecycle von Kubernetes definiert und in den Prozess eingebunden werden. Andernfalls muss das Sicherheitsthema später im Rahmen der Release-Zyklen nachgeholt werden.

Verschiedene Drittanbieter wie Twistlock oder AquaSec bieten Sicherheitstools für Kubernetes an. Diese beinhalten hilfreiche Funktionen wie das Registry Scanning oder einen Laufzeitschutz. Andere Anwendungen wie HashiCorp Sentinel und Open Policy Agent (OPA) erleichtern die Umsetzung von „Policy as Code“ und ermöglichen die Implementierung enger Sicherheitskontrollen als Teil des Deployment-Prozesses.

Automatisierungsgrad senkt Kosten und entlastet Personal

Unter dem Strich ermöglicht Kubernetes einen hohen Automatisierungsgrad, sorgt für eine bessere Verwaltung, vereinfacht die Ausführung komplexer Operationen und macht diese vor allem zuverlässiger. Das ist besonders nützlich, wenn Unternehmen für schnelle Deployments von IT-Diensten mehr Flexibilität in ihren Infrastrukturen benötigen.

Das System kann Unternehmen auch dabei helfen, die Infrastrukturkosten zu senken, indem es eine Container-basierte Architektur für ein Portfolio großer Unternehmensanwendungen ermöglicht. Darüber hinaus setzt Kubernetes personelle Ressourcen frei, die an anderer Stelle sinnvoller eingesetzt werden können.

Die Plattform unterstützt IT-Teams dabei, äußerst komplexe, in zahlreiche Container geclusterte Anwendungen extrem effizient zu verwalten. Dadurch wird die Wartung Container-gestützter Applikationen optimiert. Über eine intelligente Schnittstellenverwaltung übernimmt Kubernetes beispielsweise die Service-Erkennung und hilft Containern miteinander zu kommunizieren. Kubernetes arrangiert den Zugriff auf den Storage verschiedener Anbieter wie AWS oder Microsoft Azure.

Andreas Bachmann
Andreas Bachmann
(Bild: Tim Frankenheim)

Kubernetes lässt sich sehr gut als Managed Service einsetzen. Die Nachfrage von Unternehmen danach wächst seit einiger Zeit kontinuierlich an. Adacor bietet beispielsweise mit seinem Managed Kubernetes Cluster maßgeschneiderte und skalierbare Plattformen für die jeweiligen Kundenanforderungen – je nach Bedarf in der Public Cloud von Azure oder auf einer Private-Cloud-Infrastruktur. Bei dieser Variante erhalten Unternehmen Kubernetes in einer leistungsstarken und hochverfügbaren Umgebung mit einer persönlichen Betreuung und somit Zugriff auf das Know-how von IT-Experten, die mit dem jeweiligen Kundenprojekt vertraut sind.

* Andreas Bachmann ist CEO und Mitgründer der Adacor Hosting GmbH. Beim Anbieter von sicheren Cloud-Lösungen mit Sitz in Deutschland verantwortet er die strategische Ausrichtung des Unternehmens und sowie Vertrieb, Marketing und Compliance. Adacor wurde mehrfach für die besondere Arbeitsplatzkultur und die innovativen Entwicklungen im Unternehmen ausgezeichnet.

(ID:47304737)