Anwendungscontainer: Kubernetes 1.4 erleichtert das Erstellen von Clustern
Neben der einfacheren Benutzung trieben Sicherheitsaspekte wie Zugangsbeschränkungen und der Wunsch nach mehrere Regionen umfassenden Clustern die Entwicklung der aktuellen Version des Clustermanagement-Tools.
- Julia Schmidt
Das von Google vorangetriebene Open-Source-Tool zum Verwalten von Containerclustern Kubernetes steht ab sofort in Version 1.4 zum Download bereit. Unter anderem hat sich das Entwicklerteam für das neue Release mit Sicherheitsfragen auseinandergesetzt und ein Objekt ergänzt, durch das Administratoren in der Lage sind, Service Accounts, Gruppen und Nutzer mit unterschiedlichen Rechten auszustatten. Nutzer können zudem bestimmen, dass Container in einem AppArmor-Profil laufen sollen. AppArmor ist ein Linux-Kernel-Sicherheitsmodul, dass die potenzielle Angriffsfläche einer Anwendung reduzieren können soll.
Da wohl viele Nutzer Funktionen zum Erstellen von Anwendungen gewünscht haben, die Cluster nutzen, die mehrere Regionen und Clouds umfassen, enthält Kubernetes 1.4 Betaversionen von Federated Replica Sets, Federated Services sowie eine Federated-Ingress-Alpha. Während die Betas Replikationen über einzelne Regionen und Clouds hinweg ermöglichen, können Anwender die Alpha dazu nutzen, einen virtuellen IP Load Balancer für einen Dienst zu deployen, der über mehrere Kubernetes-Cluster verteilt läuft.
Um das Erstellen von Clustern zu erleichtern, enthält das aktuelle Release eine vorläufige Version des Tools kubeadm, das beim Bootstrapping des Clusters behilflich ist. Zudem soll die Installation von Kubernetes leichter fallen, da es nun für die meisten größeren Linux-Distributionen mit den nötigen Abhängigkeiten gebündelt vorliegt. Die zuletzt vorgestellten Init-containers und die dynamische PVC-Provisionierung liegen nun als Beta vor und eine Alpha des neu ergänzten Scheduled Job, ermöglicht das Durchführen von Batch Jobs in regelmäßigen Abständen.
Darüber hinaus haben die Entwickler neue Plug-ins für Quobyte und Azure Data Disk ergänzt und den Scheduler mit Optionen zur Priorisierung von Add-on-Pods sowie einer Alphaversion von inter-pod Affinity und Anti-Affinity ausgestattet, mit der Nutzer mehr Einfluss darauf haben sollen, wie das Cluster aufgebaut wird. Eine komplette Liste aller Neuerungen ist in den Release Notes auf GitHub zu finden.
Blick ins Container-Ă–kosystem
Kubernetes gewinnt derzeit immer mehr an Bedeutung, wie nicht zuletzt das von Google und Red Hat verfolgte OCI-Daemon-Projekt OCID zeigt. In ihm übernimmt Kubernetes die bisher Docker vorbehaltene zentrale Position, sodass das Tool in der Lage ist, Container in der Breite zu starten und zu verwalten. Genauer implementieren die Entwickler in dem Projekt das Kubelet Container Runtime Interface mit Laufzeitumgebungen, die kompatibel zu den Bemühungen der Open Container Initiative (OCI) sind – also beispielsweise rkt und der von Docker. Dadurch soll Kubernetes unter anderem in der Lage sein, Container Images laufen zu lassen, die in Docker Registries gespeichert sind.
OCID sei wohl trotz der initialen Verwendung der Containerlaufzeitumgebung runc, die das von Docker an die OCI übergebene libcontainer zugrunde legt, nicht als der immer wieder in Diskussionen auftauchende Docker-Fork zu verstehen, allerdings verdeutlicht das Projekt die langsam voranschreitende Spaltung des Container-Ökosystems. Unter anderem kritisieren Unternehmen, die Docker als Grundlage für ihre Produkte nehmen, dass Docker mit neuen Releases immer wieder die Kompatibilität des Backends außer Acht lässt, sodass es schwer fällt, Kunden schnell aktuelle Docker-Versionen zur Verfügung zu stellen. Außerdem stieß einigen Teilen der Community die Veröffentlichung der Orchestration Engine Docker Swarm mit Docker 1.12 sauer auf, da zu diesem Zeitpunkt schon viele Projekte mit Kubernetes arbeiteten. (jul)