VMware Integrated Containers (VIC) ist ein perfekter Einstieg, um Container Workloads zusammen mit normalen VMs im bestehenden Cluster zu betreiben. Man erhält die Vorteile aus beiden Welten. Entwickler können können ihre gewohnten Container Tools verwenden und erhalten obendrein die Hochverfügbarkeit und Flexibilität des vSphere Clusters.
Ich werde hier eine kleine Starthilfe zu VIC geben und wie man es verwendet.
Vorbereitungen
- VMware vSphere Integrated Containers product page
- vSphere Integrated Containers Documentation
- Container Einführung auf Wikipedia
- Wir benötigen virtuelle verteilte Portgruppen (dPG) auf verteilten Switches (vDS). Eine Public Portgruppe und eine Bridge-Portgruppe.
- Ein VIC Benutzer, für die Kommunikation zum vCenter. Dies kann ein Standard Domänenbenutzer sein, der auf dem vCenter die Berechtigung zum Erstellen und Löschen von VM hat.
Als erstes benötigen wir die Appliance, die wir bei VMware herunterladen können.
Installation und Konfiguration
Die Appliance wird im vSphere Cluster als OVA bereitgestellt, das root Passwort festgelegt und einige Angaben zum Netzwerk eingegeben. Bei Angabe mehrerer DNS-Server müssen diese mit Leerzeichen getrennt sein (!). Abschlißend werden die Eingaben überprüft und die Bereitstellung mit “Finish” abgeschlossen.
Die neue Appliance wird gestartet. Es empfiehlt sich, eine Remote-Konsole zur Appliance zu öffnen, um zu sehen daß der Bootvorgang abgeschlossen ist. Danach öffnet man einen Browser zur Adresse:
https://<vic-appliance-IP>:9443
Verbindung mit vCenter herstellen
Die VIC Appliance muss nun mit vCenter verknüpft werden.
Stellt sicher, daß das vCenter Plungin installiert wurde (UI Plugin). Ab Version 1.4.3 wird dieses automatisch installiert.
Zertifikat akzeptieren und “Continue” klicken.
Das war das Basis-Setup.
Damit das neue Plugin richtig arbeitet, ist es notwendig sich vom vCenter abzumelden und danach erneut anzumelden. Gelegentlich muss der Ab-/Anmeldevorgang zweimal wiederholt werden. Nach Erfolgreicher Installation sieht man ein neues Icon im Hauptmenü des vSphere-Client.
Jetzt benötigen wir das VIC Engine Bundle. Keine Sorge, die Anleitung dazu steht auf der Starseite der VIC-Appliance. Dazu einfach nur im Browser folgende Adresse öffnen.
https://<vic>:9443
Das Engine-Bundle herunterladen und in einen Pfad der eigen Wahl entpacken. Es empfiehlt sich ein kurzer Pfad, wie z.B. C:\vic.
Den Zertifikat Fingerabdruck des vcsa notieren
Wir benötigen einige Firewall Anpassungen an den ESXi Hosts. Diese werden auf der Bash durchgeführt, daher ist es nötig SSH und die Bash-Shell auf der vCenter Appliance zu aktivieren.
Login https://vcsa:5480
Den Bash-Timeout auf 15 Minuten setzen
Auf der vcsa mit SSH als root anmelden.
openssl x509 -in /etc/vmware-vpx/ssl/rui.crt -fingerprint -sha1 -noout
Den dargestellten Fingerprint in einen Texteditor kopieren
Auf dem Computer, auf dem die Deployment-Tools zuvor installiert wurden, öffnet man eine Kommando-Shell und wechselt ins VIC Verzeichnis.
cd c:\vic
Das folgende Kommando muss gemäß den Einstellungen der eigenen Infrastruktur angepasst werden.
vic-machine-windows update firewall --target vcenter_server_address/datacenter --user "Administrator@vsphere.local" --password vcenter_server_password --compute-resource cluster_name --thumbprint thumbprint --allow
Angepasst werden Werte für vCenter-adresse, Datacenter Name, Passwort, Clustername, Fingerprint (den wir zuvor in den Editor kopiert hatten).
vic-machine-windows update firewall --target myvcenter.domain.org/myDC --user "Administrator@vsphere.local" --password mySecretPassword --compute-resource Cluster1 --thumbprint B7:6E:FB:78:0D:EF:57:25:F0:8F:5A:F4:27:DB:3C:AA:AA:AA:AA:AA --allow
Das Kommando öffnet die für VIC notwendigen Firewall Ports auf den ESXi Hosts.
Die Firewall Anpassungen waren erfolgreich.
Netzwerke einrichte
Distributed vSwitches werden für Private VLANs vorbereitet
- Promiscuous VLAN 50
- Community VLAN 501 als Bridge
Einen Virtual Container Host im vSphere Client erstellen
Damit wir Container auf unserem Cluster betreiben können, müssen wir zunächst einen virtuellen Container Host erzeugen. Dazu öffnen wir den vSphere-Client oder Web-Client und gehen im Menü auf “Virtual Container Hosts”. Mit klick auf “+ New virtual container host” wird der Assistent zur Erzeugung gestartet.
Hier muss ein Name für den Container Host gewählt werden.
Als nächstes erfolgt die Auswahl des Clusters und eines Ressourcen-Pools (optional).
Einen Datastore für den Virtuellen Container Host (VCH) auswählen.
Im nächsten Schritt werden die Netzwerke konfiguriert.nIch hatte zwei verteilte Portgruppen für Public und Bridge Netzwerk erzeugt.
Die Zertifikatseinstellungen für Docker Clients. Für einen POC kann die Option für Client-Zertifikate deaktiviert bleiben.
Auch der Zugriff auf Container Registrys kann eingeschränkt werden (optional).
Im nächsten Schritt definieren wir einen vSphere Benutzer für VCH. Die Berechtigungen hierfür werden automatisch gesetzt.
Zum Schluss nochmals die Zusammenfassung der Eingaben. Der Assistent generiert ein CLI Kommando wahlweise für Linux oder Windows. Je nachdem auf welcher Plattform man seine Tools installiert hat. Dieses Kommando kann man in einen Editor kopieren und später auf der CLI der Workstation ausführen.
Sobald der VCH bereitgestellt ist, wird ein neues Objekt im Cluster sichbar.
Alle Container, die jetzt über diesen Container Host bereitgestellt werden, erscheinen unterhalb dieses Objekts.