Consul ist eine Service-Mesh-Lösung, die eine voll funktionsfähige Steuerungsebene bietet, einschließlich Segmentierungsfunktionalität, Konfiguration und Diensterkennung. Diese Funktionen können je nach Bedarf einzeln oder zusammen zur Erstellung eines Full-Service-Mesh verwendet werden. Consul arbeitet über eine Datenebene und unterstützt sowohl ein Proxy- als auch ein natives Integrationsmodell. Consul wird mit einem einfachen integrierten Proxy geliefert, der sicherstellt, dass alles sofort einsatzbereit ist. Consul unterstützt auch Proxy-Integrationen von Drittanbietern wie Envoy.
Zu den Hauptfunktionen von Consul gehören:
- Diensterkennung
- Gesundheitsprüfung
- KV-Shop
- Sichere Dienstkommunikation
- Multi-Rechenzentrum-Fähigkeiten
In diesem Tutorial zeigen wir Ihnen, wie Sie einen Consul-Server unter Ubuntu 20.04 installieren.
Voraussetzungen
- Ein frischer Ubuntu 20.04 VPS auf der Atlantic.Net Cloud Platform
- Auf Ihrem Server ist ein Root-Passwort konfiguriert
Schritt 1 – Erstellen Sie einen Atlantic.Net Cloud-Server
Melden Sie sich zunächst bei Ihrem Atlantic.Net Cloud Server an. Erstellen Sie einen neuen Server und wählen Sie Ubuntu 20.04 als Betriebssystem mit mindestens 2 GB RAM. Stellen Sie über SSH eine Verbindung zu Ihrem Cloud-Server her und melden Sie sich mit den oben auf der Seite hervorgehobenen Anmeldeinformationen an.
Sobald Sie sich bei Ihrem Ubuntu 20.04-Server angemeldet haben, führen Sie den folgenden Befehl aus, um Ihr Basissystem mit den neuesten verfügbaren Paketen zu aktualisieren.
apt-get update -y
Schritt 2 – Consul Server installieren
Installieren Sie zuerst die erforderlichen Pakete mit dem folgenden Befehl:
apt-get install unzip gnupg2 curl wget -y
Laden Sie als Nächstes die neueste Version von Consul mit dem folgenden Befehl herunter:
wget https://releases.hashicorp.com/consul/1.8.4/consul_1.8.4_linux_amd64.zip
Sobald der Download abgeschlossen ist, entpacken Sie die heruntergeladene Datei mit dem folgenden Befehl:
unzip consul_1.8.4_linux_amd64.zip
Als nächstes verschieben Sie die Consul-Binärdatei mit dem folgenden Befehl in das Verzeichnis /usr/local/bin:
mv consul /usr/local/bin/
Überprüfen Sie als Nächstes die Consul-Version mit dem folgenden Befehl:
consul --version
Sie sollten die folgende Ausgabe erhalten:
Consul v1.8.4 Revision 12b16df32 Protocol 2 spoken by default, understands 2 to 3 (agent will automatically use protocol >2 when speaking to compatible agents)
Schritt 3 – Consul-Service-Datei erstellen
Zuerst müssen Sie einen separaten Benutzer und eine separate Gruppe für Consul erstellen. Sie können sie mit dem folgenden Befehl erstellen:
groupadd --system consul useradd -s /sbin/nologin --system -g consul consul
Erstellen Sie als Nächstes die erforderlichen Verzeichnisse mit dem folgenden Befehl:
mkdir -p /var/lib/consul mkdir /etc/consul.d
Ändern Sie als Nächstes den Besitz und die Berechtigung dieser Verzeichnisse:
chown -R consul:consul /var/lib/consul chmod -R 775 /var/lib/consul chown -R consul:consul /etc/consul.d
Erstellen Sie als Nächstes mit dem folgenden Befehl eine Consul-Systemd-Dienstdatei:
nano /etc/systemd/system/consul.service
Fügen Sie die folgenden Zeilen hinzu:
[Unit] Description=Consul Service Discovery Agent After=network-online.target Wants=network-online.target [Service] Type=simple User=consul Group=consul ExecStart=/usr/local/bin/consul agent -server -ui \ -advertise=your-server-ip \ -bind=your-server-ip \ -data-dir=/var/lib/consul \ -node=consul-01 \ -config-dir=/etc/consul.d ExecReload=/bin/kill -HUP $MAINPID KillSignal=SIGINT TimeoutStopSec=5 Restart=on-failure SyslogIdentifier=consul [Install] WantedBy=multi-user.target
Speichern und schließen Sie die Datei, wenn Sie fertig sind.
Hinweis :Geben Sie die richtige Server-IP, den Datenverzeichnispfad und das Konfigurationsverzeichnis an, die Sie zuvor erstellt haben.
Als nächstes laden Sie den systemd-Daemon mit dem folgenden Befehl neu:
systemctl daemon-reload
Schritt 4 – Consul-Server konfigurieren
Zuerst müssen Sie einen Schlüssel mit der erforderlichen Länge und Codierung generieren. Sie können es mit dem folgenden Befehl generieren:
consul keygen
Sie sollten die folgende Ausgabe erhalten:
TJ8iw/XJ+0/BSUMGuLFWkeT23LmGnfhmF/qWgA25wZU=
Als Nächstes müssen Sie eine Json-Konfigurationsdatei für Consul erstellen. Sie können es mit dem folgenden Befehl erstellen:
nano /etc/consul.d/config.json
Geben Sie Ihre Server-IP, Ihren Hostnamen und Ihren Consul-Schlüssel wie unten gezeigt ein:
{ "bootstrap": true, "server": true, "log_level": "DEBUG", "enable_syslog": true, "datacenter": "server1", "addresses" : { "http": "0.0.0.0" }, "bind_addr": "your-server-ip", "node_name": "ubuntu2004", "data_dir": "/var/lib/consul", "acl_datacenter": "server1", "acl_default_policy": "allow", "encrypt": "TJ8iw/XJ+0/BSUMGuLFWkeT23LmGnfhmF/qWgA25wZU=" }
Speichern und schließen Sie die Datei, wenn Sie fertig sind.
Starten Sie als Nächstes den Consul-Dienst und aktivieren Sie ihn mit dem folgenden Befehl, damit er beim Systemneustart gestartet wird:
systemctl start consul systemctl enable consul
Überprüfen Sie als Nächstes den Status des Konsuls mit dem folgenden Befehl:
systemctl status consul
Sie sollten die folgende Ausgabe erhalten:
● consul.service - Consul Service Discovery Agent Loaded: loaded (/etc/systemd/system/consul.service; disabled; vendor preset: enabled) Active: active (running) since Thu 2020-10-01 10:35:52 UTC; 4min 11s ago Main PID: 5511 (consul) Tasks: 9 (limit: 2353) Memory: 17.4M CGroup: /system.slice/consul.service └─5511 /usr/local/bin/consul agent -server -ui -advertise=your-server-ip -bind=your-server-ip -data-dir=/var/lib/consul -node=con>
An diesem Punkt wird der Consul-Server gestartet und überwacht Port 8500. Sie können dies mit dem folgenden Befehl überprüfen:
ss -plunt | grep 8500
Sie sollten die folgende Ausgabe erhalten:
tcp LISTEN 0 4096 *:8500 *:* users:(("consul",pid=5511,fd=17))
Schritt 5 – Nginx als Reverse-Proxy konfigurieren
Als nächstes ist es eine gute Idee, Nginx als Reverse-Proxy zu installieren und zu konfigurieren, um auf den Consul auf Port 80 zuzugreifen.
Installieren Sie zuerst den Nginx-Server mit dem folgenden Befehl:
apt-get install nginx -y
Entfernen Sie nach der Installation die Konfigurationsdatei des virtuellen Nginx-Standardhosts:
rm -rf /etc/nginx/sites-enabled/default
Erstellen Sie als Nächstes mit dem folgenden Befehl eine Konfigurationsdatei für den virtuellen Consul-Host:
nano /etc/nginx/sites-available/consul.conf
Fügen Sie die folgenden Zeilen hinzu:
server { listen 80 ; server_name your-server-ip; root /var/lib/consul; location / { proxy_pass http://127.0.0.1:8500; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $http_host; } }
Speichern und schließen Sie die Datei und aktivieren Sie dann den virtuellen Host mit dem folgenden Befehl:
ln -s /etc/nginx/sites-available/consul.conf /etc/nginx/sites-enabled/
Überprüfen Sie als Nächstes Nginx mit dem folgenden Befehl auf Syntaxfehler:
nginx -t
Sie sollten die folgende Ausgabe erhalten:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful
Starten Sie als Nächstes den Nginx-Dienst mit dem folgenden Befehl neu:
systemctl restart nginx
Wenn Sie Fehler erhalten, müssen Sie die Konfigurationsdatei des Nginx-Standardservers bearbeiten und server_names_hash_bucket_size:
festlegennano /etc/nginx/nginx.conf
Fügen Sie die folgende Zeile unter http { hinzu :
server_names_hash_bucket_size 64;
Speichern und schließen Sie die Datei und starten Sie dann den Nginx-Dienst neu, um die Änderungen zu übernehmen:
systemctl restart nginx
Schritt 6 – Zugriff auf das Consul-Dashboard
Öffnen Sie als Nächstes Ihren Webbrowser und greifen Sie über die URL http://your-server-ip/ui auf die Consul-Weboberfläche zu . Sie sollten das Consul-Dashboard auf der folgenden Seite sehen:
Klicken Sie auf die Knoten um die aktiven Knoten in Ihrem Server wie unten gezeigt aufzulisten:
Fazit
Herzliche Glückwünsche! Sie haben den Consul-Server erfolgreich auf Ubuntu 20.04 installiert. Sie können jetzt weitere Client-Knoten zum Consul-Server hinzufügen und diese über das Consul-Dashboard verwalten. Weitere Informationen finden Sie in der Consul-Dokumentation. Beginnen Sie mit Consul auf VPS-Hosting von Atlantic.Net!