x

Menü

Erste Schritte mit HashiCorp Nomad

veröffentlicht in: hashicorp Datum: 19.02.2021
Jürgen Brüder, Senior IT-Consultant

Über den Autor

Jürgen Brüder ist ein Senior IT-Consultant für Infralovers und IT-Trainer für Commandemy. Er war der technische Leiter des Big-Data-Startups Xeer und war auch als Berater für verschiedenste Firmen aktiv. Twitter LinkedIn

Alle Artikel von diesem Autor sehen

Nomad ist HashiCorps Antwort auf Kubernetes. Kubernetes ist ein Container-Orchestrator mit viele zusätzlich integrierten Diensten. Man kann mit Recht sagen, dass die Architektur von Kubernetes sehr komplex ist.

Das HashiCorp-Logo und Nomad sind Marken von HashiCorp.

HashiCorp Nomad verfolgt einen anderen Ansatz. Es bietet “nur” die Orchestrierung von Containern und virtuellen Maschinen. Ziel ist es, eine klarere Architektur, mehr Benutzerfreundlichkeit und damit eine verbesserte Wartbarkeit herzustellen. Wenn man zusätzliche Funktionen wie Service Discovery oder Secret Management benötigen, kombiniert man Nomad einfach mit anderen HashiCorp-Produkten wie Consul oder Vault. Nomad versucht, auf sich alleine gestellt, die Dinge so einfach wie möglich zu halten.

Nomad vs Kubernetes. Image copyright by HashiCorp.

Die gesamte Funktionalität von Nomad ist in einer einzigen Binärdatei enthalten. Um Nomad auf einem Computer zu installieren, muss man lediglich die Nomad-Binärdatei herunterladen. Es sind keine komplexen Setup-Skripte erforderlich!

Nomad akzeptiert dann Befehle zum Ausführen von “Jobs”. Ein Nomad-Job ist eine vom Benutzer bereitgestellte Spezifikation, die eine Arbeitslast oder “Unit Of Work” für Nomad deklariert. Sie gibt an, welcher Container oder welche VM ausgeführt werden soll, wie diese an das Netzwerk angebunden werden sollen, wie viele Ressourcen zugewiesen werden sollen usw. Nomad ist dafür verantwortlich, diesen Job für uns zu verwalten und auszuführen.

Hier ist ein Beispiel für eine Jobspezifikation für eine Docker-Webanwendung:

job "demo" {
  datacenters = ["dc1"]
  type = "service"

  group "web" {
    count = 1

    network {
      port "http" {
        to = 80
      }
    }

    task "nginx" {
      driver = "docker"

      config {
        image = "nginxdemos/hello:latest"
        ports = ["http"]
      }

      resources {
        cpu    = 100
        memory = 128
      }
    }

  }
}

Einer der größten Vorteile von Nomad, im Vergleich zu Kubernetes, ist der Hybrid-Cloud-Ansatz. Da Nomad Container UND VMs orchestrieren kann, kann es in lokale Rechenzentren und mit mehreren öffentlichen Cloud-Anbietern gleichzeitig integriert werden. Es gibt einen nicht nur das Beste aus einer der beiden Welten, sondern auch das Beste aus ALLEN Welten.

Wenn du einen einfachen Nomad-Cluster in Aktion sehen möchtest, schau dir das folgende Video an. Ich werde dort Nomad installieren, einen Nomad-Server und -Client ausführen, einen einfachen Webanwendungsjob erstellen und auf einem Nomad-Cluster ausführen: