Container und darauf aufbauende Microservices, also Dienste, die verteilt auf verschiedene Server in Containern laufen und von einer Container Orchestration Engine verwaltet werden, sind heutzutage genauso wenig aus der Informationstechnik wegzudenken wie die Cloud.

Container-Orchestrierung mit Magnum

OpenStack Magnum verbindet diese beiden Konzepte miteinander, indem es Container-Orchestrierung auf OpenStack verfügbar macht. Dabei werden beim Aufbau eines Clusters Virtuelle Maschinen oder Baremetal-Server sowie Netzwerkressourcen erstellt und auf diesen eine Container Orchestration Engine wie zum Beispiel Kubernetes installiert.

Magnum bietet also zum Beispiel die Möglichkeit, einen Kubernetes-Cluster auf OpenStack-VMs bequem zu betreiben und zu verwalten.

Aufbau von Magnum

Magnum verwendet sogenannte Cluster-Treiber, um Cluster zu erstellen und zu verwalten. Ein Cluster-Treiber ist dabei jeweils für eine Kombination aus Basis-Image, COE und Servertyp zuständig. Es kann zum Beispiel einen Cluster-Treiber für Docker Swarm auf Fedora Atomic auf virtuellen Maschinen geben und einen anderen Cluster-Treiber für Kubernetes auf Fedora auf Baremetal-Servern.

Ein Cluster-Treiber besteht aus Python-Code, Heat Orchestration Templates und Shellskripten. Der Kern sind hierbei die HOTs, welche beschreiben, welche OpenStack-Ressourcen für einen Cluster erstellt werden und welche Shell-Skripte auf welchem Node in welcher Reihenfolge ausgeführt werden.

Viele der benötigten Parameter werden nicht erst beim Erstellen jedes Clusters angegeben, sondern in sogenannten Cluster-Templates gespeichert. Man erstellt also Cluster-Templates als Vorlagen, um später mit wenigen zusätzlichen Parametern die eigentlichen Cluster zu erstellen.

Weitere Informationen

OpenStack Wiki:
https://wiki.openstack.org/wiki/Magnum

OpenStack Git:
https://git.openstack.org/cgit/openstack/magnum

Dokumentation:
https://docs.openstack.org/magnum/latest/

IRC-Channel:
#openstack-containers auf freenode.org

David Rabel arbeitet bei B1 Systems als Trainer und Consultant für Themen rund um Linux und OpenStack. Er ist Mitglied des Debian OpenStack Packaging Teams und steuert selbst gelegentlich Patches zum OpenStack Code oder der Dokumentation bei.