Ich frage mich, ob es möglich ist, mit Docker einen virtuellen Cluster zu erstellen, damit ich Skripte ausführen kann, die für HPC-Cluster mithilfe der SGE-Clusterverwaltung entworfen wurden. Das sind ziemlich große/komplizierte Arbeitsabläufe, also ist es nicht nur etwas, das ich neu schreiben kann, sagen wir für TORQUE/PBS. Theoretisch sollte ich Docker dazu bringen können, zu denken, dass es mehrere Knoten gibt, genau wie mein interner HPC-Cluster. Wenn mir jemand den Schmerz ersparen kann, der mir sagt, dass es nicht möglich ist, wäre ich sehr dankbar.Verwenden von Docker für HPC mit Sun Grid Engine
Warnung: Ich bin kein Cluster-Administrator. Ich bin eher wie der Endbenutzer. Ich verwende auf meinem Mac OSX 10.9.5
Client version: 1.7.0 Client API version: 1.19 Go version (client): go1.4.2 Git commit (client): 0baf609 OS/Arch (client): darwin/amd64 Server version: 1.7.0 Server API version: 1.19 Go version (server): go1.4.2 Git commit (server): 0baf609 OS/Arch (server): linux/amd64 bash-3.2$ boot2docker version Boot2Docker-cli version: v1.7.0 Git commit: 7d89508
Ich habe ein Derivat eines Bildes unter Verwendung von (der Dockerfile
ist here). Meine Schritte ziemlich einfach sind und folgen Sie den Anweisungen auf dem website:
- Bild erstellen
docker-machine create -d virtualbox local
- es Machen Sie das aktive Bild
eval "$(docker-machine env local)"
- Get Schwarm Bild
docker run --rm swarm create
- erstellen Schwarm Master
docker-machine create \ -d virtualbox \ --swarm \ --swarm-master \ --swarm-discovery token://$TOKEN \ swarm-master
- Verwenden des Tokens die Schwarm Knoten
docker-machine create \ -d virtualbox \ --swarm \ --swarm-discovery token://$TOKEN \ swarm-agent-00
- anderen Knoten
hinzufügen zu erstellendocker-machine create \ -d virtualbox \ --swarm \ --swarm-discovery token://$TOKEN \ swarm-agent-01
Jetzt hier ist der verrückte pa rt. Wenn ich versuche, das Bild mit diesem Befehl zu erhalten: eval "$(docker-machine env --swarm swarm-master)"
Ich bekomme dieses blöde Ding Cannot connect to the Docker daemon. Is 'docker -d' running on this host?
.Ich habe dann versucht eval $(docker-machine env swarm-master)
und es funktioniert, aber ich bin nicht 100% sicher, dass es das Richtige zu tun:
NAME ACTIVE DRIVER STATE URL SWARM
local virtualbox Running tcp://192.168.99.105:2376
swarm-agent-00 virtualbox Running tcp://192.168.99.107:2376 swarm-master
swarm-agent-01 virtualbox Running tcp://192.168.99.108:2376 swarm-master
swarm-master * virtualbox Running tcp://192.168.99.106:2376 swarm-master (master)
- An dieser Stelle ich bauen meine Multi-Container App mit dieser yaml Datei:
bior: image: stevenhart/bior_annotate command: login -f sgeadmin volumes: - .:/Data links: - sge sge: build: . ports: - "6444" - "6445" - "6446"
mit docker-compose up
- Und dann endlich das neue Bild
Docker laufen -es --rm dockersge_sge Login -f sgeadmin
Aber hier eröffnen ist das Problem
wenn ich qhost
betreibe ich bekommen folgendes:
HOSTNAME ARCH NCPU NSOC NCOR NTHR LOAD MEMTOT MEMUSE SWAPTO SWAPUS ---------------------------------------------------------------------------------------------- global - - - - - - - - - - 6bf6f6fda409 lx-amd64 1 1 1 1 0.01 996.2M 96.2M 1.1G 0.0
Sollte es nicht denken, dass es mehrere CPUs gibt, d. H. Jeden meiner Schwarmknoten?
Danke. Das macht Sinn, wenn man sieht, was ich sehe. Ich habe gerade die Google Group des Entwicklers angepickt, um zu sehen, ob es immer noch möglich ist, durch eine Art Workaround (vielleicht nicht einmal Schwarm?). –
Haben Sie eine Beratung, um Ihren Kommentar zu kubernetes zu erweitern? Wie könnte man sge installieren (und Knoten hinzufügen) in einem Andockfenster, das darauf abzielt, sie auf Kubernetes auszuführen? – Brett
Leider bin ich nicht vertraut mit SGE, aber wenn Sie eine funktionale SGE-Setup in Docker haben, sollte es nicht schwierig sein, in Kubernetes zu konvertieren. In der Tat, Kubernetes behandelt nur den Zeitplan der Container. Du musst es googeln :) – luxas