Kopplung von Docker mit VMware

Lesezeit
3 Minuten
Bis jetzt gelesen

Kopplung von Docker mit VMware

09.09.2015 - 00:00
Veröffentlicht in:
Nachdem Infrastructure-as-a-Service mittels Virtualisierung und verschiedensten Self-Service-Portalen Einzug in die Unternehmen gehalten hat, bricht nun langsam, aber unweigerlich das Zeitalter der Container an. Diese Technologien innerhalb der eigenen IT-Infrastruktur bereitzustellen, stellt Administratoren vor große Herausforderungen und viele Fragen. Doch Container lassen sich durchaus in bestehende VMware-Umgebungen einbringen und sinnvoll kombinieren. Unser Fachartikel erklärt, wie das mit Docker funktioniert.
Software frisst die Welt. Dieser von Marc Andreessen geprägte Satz bewahrheitet sich insbesondere in Unternehmen mit einer eigenen Entwicklungsabteilung. Administratoren spüren das, weil immer mehr Open Source-Technologien wie Docker, getrieben durch die Fachbereiche, in den IT-Betrieb strömen. Eine virtuelle Infrastruktur gilt hier seit Langem als das Maß der Dinge und VMware ist innerhalb der Unternehmen weit verbreitet. Viele Aufgaben virtueller Maschinen (VM) können durch Container jedoch effizienter abgebildet und besser an verschiedene Anwendungsfälle angepasst werden. Insbesondere aber bei der Virtualisierung von Desktops (VDI) wird klar, dass sie virtuelle Maschinen noch nicht gänzlich ersetzen können.

Ein Parallelbetrieb beider Technologien ist allerdings teuer und Docker steckt, verglichen mit der Virtualisierung, noch in den Kinderschuhen. Was ist also die richtige Strategie? Provider wie Amazon kombinieren beide Technologien und betreiben Docker-Container in eigenen VM-Instanzen. Dies hat den Vorteil, dass sich Funktionen und Infrastruktur der bestehenden virtuellen Umgebung weiter nutzen lassen. Nachfolgend wird gezeigt, wie Sie Container-Dienste auf der unternehmenseigenen VMware-Infrastruktur anbieten und sinnvoll mit dieser kombinieren können.

Grundsätzlich lässt sich jede der vielen Docker-Distributionen als VM betreiben. Es lohnt sich jedoch im Hinblick auf die Integration zu prüfen, was VMware selbst im Repertoire hat. Anfang des Jahres hat VMware mit dem Project Photon eine minimale Open Source-Linux-Distribution veröffentlicht, die als Laufzeitumgebung für Container dient. Neben den bereits vorhandenen VMware-Tools liefert sie eine Reihe von Schnittstellen für weitere, von VMware bereits vorgestellte Container-Integrationen. Diese robuste Alternative zu anderen Docker-Distributionen ist bei Bintray als Download [1] verfügbar.

Erste Schritte: Photon als Grundlage
Die Installation von Photon ist denkbar einfach: In vSphere erstellen Sie eine neue VM und starten diese mit der Photon-ISO gestartet. Der Installations-Wizard führt den Benutzer durch die Installation und bietet die Wahl zwischen Micro, Minimal und Full an. Die Minimal-Installation bringt bereits alle benötigten Funktionen mit. Ausführliche Setup-Anweisungen finden sich im Github Repository [2].

Nach der Installation erfolgt die Konfiguration des Systems via Cloud-Init und DNS [3]. Die Bash-Befehle aus dem weiter unten aufgeführten Skript zeigen eine beispielhafte Cloud-Init-Konfiguration. Das Resultat ist ein ISO-Abbild, das in das virtuelle ROM-Laufwerk der Photon-VM eingelegt wird und beim Boot-Vorgang das System konfiguriert. Die via DHCP zugewiesene IP-Adresse lässt sich dank VMware-Tools im Anschluss in vSphere ablesen. Der Photon-Host können Sie nun mit jedem Docker-Client nutzen:
mkdir /tmp/photon-cloud-init/
cd /tmp/photon-cloud-init/

cat << EOF > user-data
#cloud-config
#Hostname des Photon Hosts
hostname: testhost
#Aktiviert die Docker-Remote API
runcmd:
 - sed -i -e '/^ExecStart/s/^.*$/ExecStart=\/bin\/docker -d -s overlay -H 
 unix:\/\/\/var\/run\/docker.sock -H tcp:\/\/0.0.0.0:2375/'
 /lib/systemd/system/docker.service
 - systemctl daemon-reload
 - systemctl restart docker
EOF

cat << EOF > meta-data
instance-id: iid-local01
local-hostname: cloudimg
EOF

genisoimage -output seed.iso -volid cidata -joliet -rock user-data meta-data
Integrationspfade
VMware steht längst nicht mehr nur für den Hypervisor ESXi, sondern für ein ganzes Sortiment an ergänzenden Lösungen rund  um seine Virtualisierungstechnologie. Ein Docker-Host alleine macht noch keine Integration aus. Verschiedene Technologien im VMware-Stack ermöglichen daher darüber hinaus auch die Bereitstellung von Container-as-a-Service à la Amazon auf der vorhandenen Infrastruktur. Hierzu werden Produkte der VMware vRealize-Familie, namentlich vRealize Orchestrator und vRealize Automation, integriert. Wenn nur eine vSphere-Basis-Infrastruktur zur Verfügung steht, lässt sich dies bei allen nachfolgend gezeigten Beispielen über die native Integration von vRealize Orchestrator in den vCenter-Web-Client umsetzen. Voraussetzung dafür ist eine aktuelle vSphere-Umgebung der Version 5.5.2 oder höher.

vRealize Orchestrator
Ein besonderes Werkzeug im VMware-Sortiment  ist das mit der vCenter-Lizenz erworbene und somit meist bereits vorhandene vRealize Orchestrator. Hierbei handelt es sich um eine Workflow-Engine, die mittels Plug-Ins an verschiedene VMware-eigene, aber auch Dritthersteller-Produkte andocken kann und sich durch einen hohen Grad an Anpassung auszeichnet.

Um Docker-as-a-Service zu realisieren, wird das Open Source-Plug-In Coopto genutzt, das die unkomplizierte Verwaltung beliebiger Container aus vRealize Orchestrator ermöglicht. In Kombination mit anderen Workflows und Plug-Ins lassen sich damit auch über mehrere Ebenen hinweg Prozesse abbilden. Beispielsweise können Sie einen Workflow erstellen, der für jeden produktiven Container eine eigene virtuelle Festplatte erzeugt oder virtuelle, dynamisch erzeugte Layer-2-Netze an Container durchreicht.

Zunächst benötigen Sie den vRealize Orchestrator. Diesen beziehen Sie als virtuelle Appliance im OVA-Format über die VMware-Webseite bezogen und stellen ihn mit wenigen Klicks anhand der detaillierten Setup-Anleitung [4] der aktuellen Version bereit. Im Anschluss laden Sie das Coopto Plug-In über das VMware Solution Exchange [5] oder das zugehörige GitHub Repository [6] herunter. Im Solution Exchange gibt es den User-Guide mit den genauen Installationsanweisungen zur Installation des Plug-Ins. Einmal installiert, lässt sich der Java-basierte Orchestrator Client unter der URL https://orchestrator-host:8281/vco/ durch Klick auf Start Orchestrator Client starten.

Konfiguration des Docker Plug-Ins
Sobald das Plug-In installiert ist, sollte Coopto mit all seinen Workflows in der Workflow-Ansicht des Clients unter Library/Coopto erscheinen.


Bild 1: Das Docker-Plug-In für vRealize Orchestrator erscheint unter "/Library/Coopto".
(Quelle: Fritz & Macziol / vRealize Orchestrator)


Dort müssen Sie zunächst den erstellten Photon-Host als Docker-Node hinzugefügen. Dazu wird "Workflow Library / Coopto / Configuration / Add Docker Node" per Rechtsklick und "Start Workflow" gestartet. Nach der Eingabe der IP-Adresse und des im obigen Skript festgelegten API-Ports schicken Sie den Workflow mit einem Klick auf "submit" ab. Wichtig ist, dass der Docker-Host netzwerkseitig von vRealize Orchestrator erreichbar ist und der Docker-Service im Photon Host nach der Aktivierung der Remote-API neu gestartet wurde.

    Seite 1: Mögliche Integrationspfade
    Seite 2: Container-as-a-Service


Seite 1 von 2 Nächste Seite >>




ln/Robert Szymczak, VMware Consulting und Data-Center Services bei Fritz & Macziol

[1] https://bintray.com/vmware/photon/iso/view#files
[2] https://github.com/vmware/photon/wiki/Running-Project-Photon-on-vSphere
[3] https://github.com/vmware/photon/blob/master/docs/cloud-init.md
[4] http://pubs.vmware.com/vsphere-60/index.jsp?topic=%2Fcom.vmware.vrealize.orchestrator-install-config.doc%2FGUID-64F03876-2EAB-4DB3-A95D-89842425FF7A.html
[5] https://solutionexchange.vmware.com/store/products/coopto-a-docker-plug-in-for-vmware-vrealize-orchestrator--2#.VcJohG7tl4d
[6] https://github.com/m451/coopto/

Ähnliche Beiträge

Azure mit lokalen Netzen verbinden (3)

Azure bietet vielfältige Möglichkeiten, um Ressourcen in der Cloud mit lokalen Netzwerken zu verbinden. Dazu gehören auch Sicherheitsmechanismen und Loadbalancer, die den Datenverkehr zwischen Cloud und lokalem Rechenzentrum nicht nur zur Verfügung stellen, sondern absichern und hochverfügbar konfigurieren. IT-Administrator zeigt die Wege auf, um die Cloudumgebung mit dem lokalen Netzwerk zu verbinden. Im dritten und letzten Teil der Workshopserie zeigen wir, wie Sie virtuelle Firewalls hochziehen.

Azure mit lokalen Netzen verbinden (2)

Azure bietet vielfältige Möglichkeiten, um Ressourcen in der Cloud mit lokalen Netzwerken zu verbinden. Dazu gehören auch Sicherheitsmechanismen und Loadbalancer, die den Datenverkehr zwischen Cloud und lokalem Rechenzentrum nicht nur zur Verfügung stellen, sondern absichern und hochverfügbar konfigurieren. IT-Administrator zeigt die Wege auf, um die Cloudumgebung mit dem lokalen Netzwerk zu verbinden. Im zweiten Teil binden wir den Connection Broker an und erklären, was es mit dem Cloud Witness auf sich hat.

Azure mit lokalen Netzen verbinden (1)

Azure bietet vielfältige Möglichkeiten, um Ressourcen in der Cloud mit lokalen Netzwerken zu verbinden. Dazu gehören auch Sicherheitsmechanismen und Loadbalancer, die den Datenverkehr zwischen Cloud und lokalem Rechenzentrum nicht nur zur Verfügung stellen, sondern absichern und hochverfügbar konfigurieren. IT-Administrator zeigt die Wege auf, um die Cloudumgebung mit dem lokalen Netzwerk zu verbinden. Im ersten Teil der Workshopserie schildern wir das Prinzip virtueller Netzwerke.