[DE] Nutanix – Acropolis Container Services


Heute geht es um ein natürlich nicht völlig neues, aber dennoch für Personen aus dem IT-Infrastruktur Bereich, eher ungewohntes Thema. Container – oder Docker – ist in aller Munde und da wird es Zeit einen Blick darauf zu werfen, wie sich die moderne IT-Infrastruktur und Container zusammenbringen lassen.  Also was tun, wenn aus den Fachabteilungen die Anforderung einer Container Plattform kommt?

Container sind ganz allgemein gesprochen, kleine kurzlebige Dienste, die auf ein Host Betriebssystem aufsetzen und die eigentliche Applikation und all Ihre Abhängigkeiten mitbringt und im Zusammenspiel mit dem Kernel des Host Betriebssystem zur lauffähigen Applikation werden. In der Regel sind diese Stateless und halten die Daten außerhalb der Container. Anders als bei virtuelle Maschinen geht man davon aus, dass Container ausfallen dürfen, da die bereitgestellten Dienste in der Regel nicht von einem Container alleine bereitgestellt wird. Streikt ein Container, so wird dieser einfach gestoppt und eine neue Instanz des Containers neu gestartet und schon steht der den Dienst steht wieder zur Verfügung.

Das erfordert aber nicht nur eine Plattform, welche die Container selbst hosten kann, sondern auch die Orchestrierung übernimmt und Benutzern oder Automatisierungs-Software über Schnittstellen ermöglicht, diese autonom ohne Eingriff der IT –Abteilung zu starten und zu stoppen.

Vielleicht hier ein beeindruckendes Beispiel aus der Google Cloud, denn dort werden viele Dienst bereits als so genannte „Micro Services“ abgebildet. Die Engine dahinter rollt automatisiert rund 7000 Container pro Sekunde aus! Quelle: Kubernetes – Scheduling the Future at Cloud Scale von David K. Rensin

Und hier kommen die Nutanix Enterprise Cloud Plattform mit ihrer neuesten Ergänzung, der Acropolis Container Services (ACS) zum Tragen. ACS erweitert die Nutanix Plattform um eine Lösung zum „IT-freien“ betrieb von Containern.

Zunächst ein kurzer Blick auf den Motor des Ganzen. Dieser besteht im Wesentlichen aus den dockerized Host VMs. Kleine Linux VMs, mit entsprechender Docker Installation, auf denen die eigentlichen Container gestartet werden können. Diese werden automatisiert über ACS ausgerollt, das freut sicherlich die Plattform-Admins, da hierfür kein spezielles Container Knowhow benötigt wird. Diese VMs bilden dann entsprechend zusammen einen so genannten Container Machine Pool.

Jetzt braucht es noch eine Komponente, welche die auszurollenden Container entsprechend auf den Host VMs platziert, also quasi alles orchestriert. Dies übernimmt ein neuer „Container Service“ der jetzt Teil der Nutanix Controller Virtual Machine (CVM) ist. Auf Basis von Docker Swarm, übernimmt dieser Dienst das gesamte Organisation der Container. Der Dienst läuft verteilt über alle CVMs und eine der CVMs agiert dabei immer als Swarm-Master.

Sollen die Daten extern auf persistenten Volumes abgelegt werden, kann hierfür das Nutanix Docker Volume Plugin (DVP) genutzt werden. Welches entsprechen den Storage der Nutanix Plattform innerhalb der Container zur Verfügung stellt. Dies läuft über die Acropolis Block Services (ABS).

Somit können klassische VMs, parallel zu Containern auf einer Plattform betrieben werden. Damit können auch direkt weitere Dienste, wie zum Beispiel eine persistente Datenbank auf der Plattform betreiben werden, die von den Containern genutzt werden soll, mit allen Vorteilen einer virtuellen Infrastruktur.

Näher betrachtet, erkennt man den Zusammenhang zwischen Client und der Docker Host VM.

Was muss die IT, die ja noch immer die Hoheit über die Plattform besitzt tun, um ACS zu aktivieren? Lediglich über den Punkt Upgrade Software in Prism, auf den Tab Container gehen und nach erfolgreichem Download der Software, Install klicken.

Gefolgt vom letzten Schritt, den Haken „Enable Container“ setzen. Über diesen Weg lassen sich die Container Host VMs auch bequem aktualisieren.

 

Soweit zur Backend Infrastruktur, wichtiger aber ist, wie kommen Benutzer jetzt in den Genuss die Container tatsächlich zu benutzen, ohne sich Gedanken um die dahinterliegende Infrastruktur zu machen?

Der Weg führt über das Nutanix Self-Service Portal (SSP), über welches Benutzern entsprechend Zugriff auf die Ressourcen der Nutanix Plattform erhalten. Derzeit in Form von virtuellen Maschinen und eben neuerdings Container. Dort lassen sich spezielle Rollen, mit der Berechtigung für Container Deployments erstellen und diese können dann entsprechenden Projekten mit Ressource Quotas zugewiesen werden. Die Benutzerverwaltung läuft über das in der Regel vorhandene Active Directory, sodass diese direkt den Projekten zugeordnet werden können und nicht zusätzlich Benutzer gepflegt werden müssen. Mehr Details zum Self-Service Portal, folgendem in einem eigenen Blog Artikel.

Loggt sich der Benutzer jetzt ein, ist es ihm möglich Container aus der öffentlichen Docker Registry zu ziehen und auszurollen oder aus einem internen, extra zu hinterlegenden, privaten Repository. In der ersten Version von ACS werden erst einmal Single Container Deployments unterstützt. Multi-Container sollen folgen. Je nachdem, welche Netzwerke (VLANs) der Hypervisor Host konfiguriert hat, werden diese dann im SSP als Option während des Deployment angeboten.

Als Teil der Advanced Settings, lassen sich zum Beispiel Port Mappings bzw. zusätzliche Variablen/Commands hinterlegen oder einfach den persistenten Storage als Mount Point einbinden. Die Besonderheit, der Prozess erlaubt es den Benutzern selbst den Storage zu provisionieren, also neue Volumes anzulegen. Auch lässt sich das Docker Volume Plug-In direkt aus Docker Datacenter heraus ansprechen, was zeigt das dieses universell einsetzbar ist und nicht auf die Verwendung von ACS beschränkt ist.

In Version 1.0 beschränkt sich ACS auf ein UI gestützte Nutzung und ein laufender Container sieht dann wie folgt aus:

Hier ist zukünftig zu erwarten, dass sich nicht nur komplexere Container Deployments durchführen lassen, sondern die Steuerung auch via APIs & CLIs möglich wird. Denn in den meisten Fällen ist es das Ziel, dass dieser Prozess z.B. als Teil eines Continuous Deployment, komplett automatisiert sein sollte.

Der Vollständigkeit halber sei erwähnt, bereits heute schon ist es möglichst, dass Entwickler direkt von ihrem Endgerät aus, dockerized Host VMs auf der Nutanix Plattform erstellen bzw. ansprechen und dort direkt ihre Container nutzen können. Nach einer Installation der entsprechenden Nutanix Client Software, sieht das dann in etwa wie folgt aus:

pschulz-deu-mbp:~ patrick.schulz$ docker-machine create -d nutanix –nutanix-username admin –nutanix-password password –nutanix-endpoint 192.168.100.201:9440 –nutanix-vm-image ContainerHost-20160818 –nutanix-vm-network Default nutanix-docker-vm-10

Running pre-create checks…

Creating machine…

Waiting for machine to be running, this may take a few minutes…

Detecting operating system of created instance…

Waiting for SSH to be available…

Detecting the provisioner…

Provisioning with centos…

Copying certs to the local machine directory…

Copying certs to the remote machine…

Setting Docker configuration on the remote daemon…

Checking connection to Docker…

Docker is up and running!

To see how to connect your Docker Client to the Docker Engine running on this virtual machine, run: docker-machine env nutanix-docker-vm-10

pschulz-deu-mbp:~ patrick.schulz$ docker-machine env nutanix-docker-vm-10

export DOCKER_TLS_VERIFY=”1″

export DOCKER_HOST=”tcp://192.168.100.32:2376″

export DOCKER_CERT_PATH=”/Users/patrick.schulz/.docker/machine/machines/nutanix-docker-vm-10″

export DOCKER_MACHINE_NAME=”nutanix-docker-vm-10″

# Run this command to configure your shell: 

# eval $(docker-machine env nutanix-docker-vm-10)

Hinweis: Das entsprechende dockerized Host VM Image, muss vorher über den Nutanix Image Service hochgeladen werden.

Print Friendly

Related Post

It's only fair to share...Tweet about this on TwitterShare on LinkedInEmail this to someone

Leave a comment

Your email address will not be published. Required fields are marked *