Vor einigen Wochen habe ich mir 4 Raspberry Pis gekauft um einige Experimente mit Docker Cluster Managern zu machen. Das erste Experiment ist der Hashipi, bestehend aus dem HashiCorp Stack:
Nomad verteilt Applikationen mit Hilfe von z.B. docker über mehrere Server, wo halt Platz ist, automatisch. Die Applikationen können sich mit Hilfe service discovery in Consul automatisch finden und ein LoadBalancer wie Fabio wäre in der Lage automatisch z.B. alle nginx Webserver anzusprechen. Sollten die Applikationen auf z.B. eine MySQL Datenbank zugreifen müssen, können die dazu passenden Passwörter aus Vault ausgelesen werden ohne, dass diese explizit auf den Servern verteilt werden müssen. Mit dieser Konstellation lässt sich also vollautomatisch z.B. eine vollständige Webapplikation mit allem drum und dran fertig installieren.
Installation
Die Installation und Konfiguration mache ich, wie immer, mit Ansible. Die Installation ist ausführlich in meinem Github Repo zu diesem Projekt beschrieben: https://github.com/Madic-/hashipi. Ebenfalls sind hier alle Ansible Skripte.
Bilder
Post-Installation
Nach der Installation durch meine Ansible Skripte wird einer von den Pis als Nomad Master und mit Vault installiert. Die anderen Pis sind Nomad Clients und kümmern sich drum, die angeforderten Applikationen zu starten. Wer die Beispiele ausführt, bekommt 4 nginx Server die über den LoadBalancer Fabio verteilt werden.
Ergebnis
Das Ergebnis lässt sich am besten in HashiUI einsehen.
Mir gefällt am HashiStack die ungemein einfache Installation sehr. Man wirft deren Go-Binaries auf die Server, konfiguriert in einer einzelnen Datei die jeweiligen Services und erstellt optional ein systemd file für den automatischen Start. Fertig ist der HashiStack. Davon können vergleichbare ClusterManager wie Kubernetes nur träumen. Wer nicht gerade die Funktionen von dem Monster Kubernetes braucht, sollte sich unbedingt mit den Produkten von HashiCorp auseinandersetzen. Mit Terraform lassen sich die Services verwalten und Packer erstellt z.B. fertige Images die mit Nomad gestartet werden können.
Eine ganz große Empfehlung von mir!