Suchen

Microservice- und App-Bereitstellung mit K8s, Teil 3 Container-Cluster mit Kubernetes flexibel steuern

Autor / Redakteur: Thomas Joos / Stephan Augsten

Kubernetes bietet den Vorteil, dass Ressourcen und der Cluster an sich ständig und flexibel anpassbar sind. Dadurch lassen sich Cluster und Container jederzeit so skalieren, dass die Leistung optimal verteilt wird.

Firmen zum Thema

Das Autoscaling von Kubernetes eignet sich insbesondere für größere Container-Umgebungen und Cluster.
Das Autoscaling von Kubernetes eignet sich insbesondere für größere Container-Umgebungen und Cluster.
(Bild: Kubernetes.io)

Kubernetes kann in einer Vielzahl von Umgebungen betrieben werden. Neben lokalen Installationen auf eigener Hardware besteht auch die Möglichkeit, den Betrieb über Amazon Web Services, Microsoft Azure oder die Google Cloud Platform zu realisieren. Unabhängig davon, wo der Cluster betrieben wird, lässt er sich schnell und einfach skalieren.

Nodes und Pods unterscheiden

Bei der Skalierung von Kubernetes-Clustern wird zwischen der Skalierung der Pods/Container selbst und der Skalierung des Clusters unterschieden. Ein Kubernetes-Cluster besteht aus Nodes. Dabei handelt es sich meistens um virtuelle Server, auf denen die per Kubernetes verwaltete Container-Technologie ausgeführt wird. Viele Anwender setzen an dieser Stelle auf Docker.

Container werden zu Pods zusammengefasst und auf Nodes betrieben. Alle Container in einem Pod teilen sich die Ressourcen, die dem Pod zugeteilt wurden. Dabei kann es sich um Prozessor und Arbeitsspeicher oder auch um Platz auf Datenträgern und die IP-Adresse handeln. Jeder Pod nutzt seine eigene IP-Adresse im Cluster.

Neue Instanzen integrieren

Werden einem Kubernetes-Cluster neue Instanzen hinzugefügt, verwendet Kubernetes die gleiche Konfiguration wie bei den bestehenden Instanzen. So könnte man beim Betrieb auf der Google Cloud Platform beispielsweise festlegen, ob vorhandene Pods automatisch auf die neuen Instanzen verschoben werden oder auf vorhandenen Instanzen verbleiben sollen.

Neue Pods lassen sich dann natürlich weiterhin jederzeit auf den neuen Instanzen bereitstellen. Der folgende Befehl dient dazu, einen Container-Cluster in der Google Cloud Platform zu vergrößern:

gcloud container clusters resize CLUSTER_NAME --size SIZE

Alle Möglichkeiten, die an dieser Stelle bestehen, finden sich in der entsprechenden Cluster-Dokumentation zur Google Cloud Platform.

Kubernetes auch in Microsoft Azure skalieren

Beim Betrieb eines lokalen Kubernetes-Clusters – aber auch wenn auf Microsoft Azure und Azure Container Services gesetzt wird – kann die Skalierung von Kubernetes über das Befehlszeilentool „kubectl“ erfolgen. Alle Pods werden zum Beispiel mit „kubectl get pods“ angezeigt. Erweitern lassen sich Pods mit der Option „scale“ von „kubectl“, zum Beispiel mit:

kubectl scale --replicas=5 deployment/azure-vote-front

Die Erweiterung kann dann wiederum mit „kubectl get pods“ überprüft werden. Hier sollten dank der zuvor verwendeten replicas-Option jetzt fünf weitere Pods zur Verfügung stehen.

(ID:45100355)

Über den Autor

 Thomas Joos

Thomas Joos

Freiberuflicher Autor und Journalist