Erstellen Sie einen lokalen Cluster mit Vagrant/CoreOS/Docker

Erstellen Sie einen lokalen Cluster mit Vagrant/CoreOS/Docker

Ich versuche, zu Testzwecken eine lokale Umgebung zu erstellen, die aus Folgendem besteht:

  • ein Vagrant CoreOS-Cluster (3 Knoten)
  • ein Docker-Container mit geladenem Nginx-Image, gestartet auf einem Knoten

Ich habe Vagrant und CoreOS erfolgreich installiert. Etcd ist einsatzbereit und ich habe viel mit Fleet gespielt. Ich habe auch einen Nginx-Container mit Fleet-Diensten gestartet. Was ich nicht wirklich herausfinden kann, ist:

  • Wie kann ich den Verkehr auf einen bestimmten Container umleiten? Ich möchte, dass mein lokaler Browser auf eine lokale Adresse (z. B. example.dev) verweist und der Cluster mit dem richtigen Nginx-Container (der irgendwo im Cluster platziert ist) antwortet.
  • Ist ein Proxy eine geeignete Lösung? Wenn nicht, gibt es etwas, das für diesen Zweck geschaffen wurde?

Vielen Dank im Voraus. Fragen Sie gern nach weiteren Einzelheiten, die ich vielleicht vergessen habe!

Antwort1

Die einfache Antwort besteht darin, einfach Ihre lokale Hosts-Datei zu bearbeiten, z. B. /etc/hostsunter Linux oder OS X oder C:\Windows\System32\drivers\etc\hostsauf einer typischen Windows-Box.

Wenn Sie eher etwas für die Produktion als eine schnelle Lösung für die Entwicklung möchten, brauchen Sie einen Reverse-Proxy wie Nginx oder Haproxy und eine automatische Konfiguration anhand der Verfügbarkeit von Nginx-Backend-Containern.

  • Jeder Backend-Nginx-Container benötigt einen „Sidekick“-Dienst, um seine Verfügbarkeit gegenüber etcd bekannt zu geben.
  • dann renneVertrauenum auf etcd-Änderungen zu warten und die Konfiguration des Reverse-Proxys zu aktualisieren

Auf diese Weise können Sie einen einzelnen Port auf dem Reverse-Proxy an eine beliebige Anzahl von Back-End-Nginx-Diensten weiterleiten, die nur auf dem privaten Netzwerk lauschen müssen.

Ich habe geschriebeneine detailliertere Darstellung dieses Ansatzes hier.

verwandte Informationen