Am zweiten Tag der Dockercon EU 2015 in Barcelona stellte Docker den fehlenden Klebstoff vor, den sie "Containers as a Service Platform" nennen. Mit dem Fokus sowohl auf die öffentliche Cloud als auch auf On-Premise ist dies eine großartige Ergänzung des Ökosystems. In diesem Blogpost möchte ich mich auf den Run-Teil des "Build-Ship-Run"-Gedankens von Docker konzentrieren, und zwar mit dem Schwerpunkt auf On-Premise. Um dies zu realisieren, hat Docker die Docker Universal Control Plane ins Leben gerufen, das Projekt, das früher als Orca bekannt war.
Ich konnte mit der Version 0.4.0 der Software während eines praktischen Praktikums spielen und werde versuchen, das Gelernte zusammenzufassen.
Einfache Installation
Natürlich erfolgt die Installation durch das Starten von Docker-Containern auf einem oder mehreren Hosts, so dass Sie Ihre Hosts mit der Docker-Engine bereitstellen müssen. Danach können Sie einen orca-bootstrap Container starten, um einen Orca-Controller zu installieren, zu deinstallieren oder hinzuzufügen. Das Skript orca-bootstrap erzeugt eine Swarm Root CA, eine Orca Root CA, stellt die erforderlichen Orca-Container bereit (mehr dazu im nächsten Abschnitt) und danach können Sie sich in der Docker Universal Control Plane anmelden. Das Hinzufügen eines zweiten Orca-Controllers ist so einfach wie das Ausführen von orca-bootstrap mit einem join-Parameter und der Angabe des vorhandenen Orca-Controllers.
Architektur
Lassen Sie uns ein wenig über die technischen Aspekte sprechen und bedenken Sie, dass ich nicht der Erfinder dieses Produkts bin. Nachdem Sie das orca-bootstrap Installationsprogramm erfolgreich ausgeführt haben, laufen 7 Container. Sie haben den Orca-Controller selbst, der auf Port 443 lauscht, was Ihr Haupteinstiegspunkt in Docker UCP ist. Es gibt 2 cfssl-Container, einen für Orca CA und einen für Swarm CA. Dann haben Sie die Swarm-Container (Manager und Agent) und den Key-Value-Store, für den Docker etcd gewählt hat. Schließlich gibt es noch einen Orca-Proxy-Container, dessen Port 12376 auf den Swarm Manager umleitet. Ich bin mir noch nicht sicher, warum das so ist, vielleicht finden wir es in der Beta-Version heraus.
Vom Frontend (das wir als nächstes besprechen werden) können Sie ein 'Bundle' herunterladen, das eine Zip-Datei ist, die die TLS-Teile und eine quellfähige Umgebungsdatei enthält:
export DOCKER_TLS_VERIFY=1
export DOCKER_CERT_PATH=$(pwd)
export DOCKER_HOST=tcp://orca_controller_ip:443
Führen Sie diesen Befehl in diesem Verzeichnis aus, um Ihre Shell zu konfigurieren:
eval $(env.sh)
Dieses Admin-Zertifikat funktioniert auch direkt gegen Swarm und die einzelnen
Engine-Proxys für die Fehlersuche. Nachdem Sie diese env-Datei beschafft haben, verwenden Sie
"docker info", um den Standort der Swarm-Manager und Engines zu ermitteln.
und verwenden Sie die Option --host, um $DOCKER_HOST außer Kraft zu setzen
Wie Sie sehen können, funktioniert es auch direkt gegen Swarm Manager und Engine zur Fehlersuche. Die Ausführung von docker version mit dieser Umgebung ergibt:
Client:
Version: 1.9.0
API version: 1.21
Go version: go1.4.2
Git commit: 76d6bc9
Built: Tue Nov 3 17:43:42 UTC 2015
OS/Arch: linux/amd64
Server:
Version: orca/0.4.0
API version: 1.21
Go version: go1.5
Git commit: 56afff6
Built:
OS/Arch: linux/amd64
Frontend
Okay, als ich das Frontend öffnete, sah es ziemlich vertraut aus und ich versuchte mich zu erinnern, wo ich das schon einmal gesehen hatte. Nach einem Blick in den Quellcode fand ich einen ng-app-Parameter im html-Tag namens shipyard. Die GUI basiert auf dem Shipyard-Projekt. Das ist cool, weil es sich dabei um ein bereits gut funktionierendes Verwaltungstool handelt, das auf Docker Swarm und der Docker-API aufbaut, so dass Leute, die mit Shipyard vertraut sind, die Funktionalität bereits kennen. Lassen Sie mich kurz zusammenfassen, was es kann und wie es in Docker UCP aussieht.
Übersicht über das Dashboard
Anwendung erweitert, Container schnell starten/stoppen/neustarten/zerstören/inspektieren
Anwendungsübersichten, Diagramme zur Ressourcennutzung und Container-IDs können in das Diagramm ein- oder ausgeschlossen werden.
Übersicht über Container, Mehrfachauswahl von Containern und Ausführen von Aktionen
Fähigkeit, Protokolle schnell zu prüfen
Möglichkeit der Ausführung im Container zur Fehlersuche usw.
Secrets Management & Authentifizierung/Autorisierung
In diesem praktischen Labor gab es also einige Dinge, die noch nicht fertig waren. Irgendwann wird es möglich sein, Docker UCP mit einem bestehenden LDAP-Verzeichnis zu verbinden, aber das konnte ich noch nicht testen. Sobald es vollständig implementiert ist, können Sie es an Ihr bestehendes RBAC-System anschließen und den Teams die erforderlichen Berechtigungen erteilen.
Es gab auch eine Demo, in der ein Tool zur Verwaltung von Geheimnissen vorgestellt wurde, das ebenfalls noch nicht verfügbar war. Ich vermute, dass der Key-Value-Store auch dafür verwendet wird. Im Grunde können Sie ein Geheimnis unter einem Pfad wie secret/prod/redis speichern und dann darauf zugreifen, indem Sie einen Container mit einem Label wie:
docker run -ti --rm -label com.docker.secret.scope=secret/prod
Jetzt können Sie auf das Geheimnis innerhalb des Containers in der Datei /secret/prod/redis zugreifen.
Was nun?
Viele neue Dinge werden dem Ökosystem hinzugefügt, was sicherlich die Akzeptanz von Docker bei einigen Kunden und die Einführung in die Produktion fördern wird. Ich finde es gut, dass Docker an die On-Premise-Kunden gedacht hat und sie genauso wie die Cloud-Nutzer versorgt. Da es sich um eine frühe Version handelt, brauchen sie das Feedback der Benutzer. Wenn Sie also die Möglichkeit haben, die Software zu testen, tun Sie das bitte, um das Produkt zu verbessern. Sie sagten, dass sie zum Beispiel bereits an Multi-Tenancy arbeiten, aber es wurde kein Zeitplan genannt.
Wenn Sie sich für die Beta-Version von Docker Universal Control Plane anmelden möchten, können Sie sich auf dieser Seite anmelden: docker.com/try-ducp
Verfasst von
Sebastiaan van Steenis
Unsere Ideen
Weitere Blogs
Contact



