1. Container-Service-Update und Erkennung von Docker Consul 1. Was ist Serviceregistrierung und -erkennung?Die Dienstregistrierung und -erkennung sind wichtige Komponenten, die in der Microservices-Architektur unverzichtbar sind. Anfangs waren alle Dienste Einzelknoten ohne Garantie für hohe Verfügbarkeit und ohne Berücksichtigung des Dienstdrucks. Dienstaufrufe wurden einfach über den Schnittstellenzugriff getätigt. Erst mit dem Aufkommen einer verteilten Architektur mit mehreren Knoten bestand die anfängliche Lösung darin, die Last des Service-Front-Ends auszugleichen. Auf diese Weise muss das Front-End den Netzwerkstandort aller Back-End-Dienste kennen und diese in der Konfigurationsdatei konfigurieren. Hier gibt es mehrere Probleme:
Da diese Probleme bestehen, stellen Dienstregistrierung und -erkennung die Lösung für diese Probleme dar. Die Backend-Dienste A–N können ihre aktuellen Netzwerkstandorte beim Diensterkennungsmodul registrieren und die Diensterkennung wird in der Form Kv aufgezeichnet, wobei K im Allgemeinen der Dienstname und v IP:PORT ist. Das Service-Discovery-Modul führt regelmäßig Integritätsprüfungen durch und prüft, ob auf diese Backend-Dienste zugegriffen werden kann. Wenn das Front-End den Back-End-Dienst AN aufruft, fragt es im Diensterkennungsmodul nach dem Netzwerkstandort und ruft dann die Dienste auf. Dieser Ansatz kann die oben genannten Probleme lösen. Das Front-End muss den Netzwerkstandort dieser Back-End-Dienste überhaupt nicht aufzeichnen, und das Front-End und das Back-End sind vollständig entkoppelt. 2. Was ist Konsul?
3. Einige wichtige Funktionen von ConsulDienstregistrierung und -erkennung
Gesundheitscheck:
Schlüssel-/Wertspeicher:
2. Konsul-BereitstellungUmgebungsvorbereitung
Deaktivieren Sie Firewall und SElinux auf allen Servern systemctl stoppe Firewall 0 Schritt 1: Die Vorgänge auf dem Konsulserver sind wie folgt1. Konsulat einrichtenmkdir /opt/consul/ cd /opt/consul/ rz -E #Importieren Sie das folgende komprimierte Paket consul_0.9.2_linux_amd64.zip entpacken Sie consul_0.9.2_linux_amd64.zip mv consul /usr/local/bin/ 2. Richten Sie den Proxy ein und starten Sie den Consul-Server im HintergrundKonsulagent \ -server \ -bootstrap \ -ui \ -data-dir=/var/lib/consul-data \ -bind=192.168.80.10 \ -client=0.0.0.0 \ -node=consul-server01 &> /var/log/consul.log & netstat -napt | grep konsul Konsul-Mitglieder Konsulinfo | Grep-Leiter Die zugehörigen Optionen werden im Folgenden beschrieben:
1) Mitgliedsstatus und Clusterstatus prüfen Cluster-Server-Mitglieder anzeigen curl 127.0.0.1:8500/v1/status/peers Cluster Raf-Leader curl 127.0.0.1:8500/v1/status/leader Alle registrierten Dienste curl 127.0.0.1:8500/v1/catalog/services Nginx-Dienstinformationen anzeigen curl 127.0.0.1:8500/v1/catalog/nginx Clusterknotendetails curl 127.0.0.1:8500/v1/catalog/nodes Schritt 2: Bereitstellung des Registrators 192.168.80.20. Die Vorgehensweise ist wie folgt:4. Der Containerdienst tritt automatisch dem Nginx-Cluster bei
|
–net=Host | Stellen Sie den laufenden Docker-Container auf den Host-Netzwerkmodus ein. |
---|---|
-v /var/run/docker.sock:/tmp/docker.sock | Mounten Sie den Unix-Domänen-Socket, auf dem der Docker-Daemon des Hosts standardmäßig lauscht, in den Container. |
--restart=immer | Stellen Sie den Container so ein, dass er nach dem Beenden immer neu gestartet wird. |
–ip | Wir haben gerade das Netzwerk auf den Hostmodus eingestellt, also geben wir die IP als IP der Hostmaschine an. |
Konsul | Geben Sie die IP und den Port des Consul-Servers an. |
docker run -itd -p:81:80 --name test-01 -h test01 nginx docker run -itd -p:82:80 --name test-02 -h test02 nginx docker run -itd -p:83:80 --name test-03 -h test03 httpd docker run -itd -p:84:80 --name test-04 -h test04 httpd
Ausführen von Vorgängen auf dem Consul-Server
1) Fügen Sie die Konfigurationsdatei nginx.ctmpl hinzu
[root@consul consul]# pwd #Derzeit im Verzeichnis /opt/consul /opt/consul [root@consul konsul]# vim nginx.ctmpl Upstream nginx_slb { {{Bereichsdienst "nginx"}} Server {{.Adresse}}:{{.Port}}; {{Ende}} } Server { hör zu 8000; Servername localhost 192.168.80.10; Zugriffsprotokoll: /var/log/nginx/clj.com-access.log; Index Index.html Index.php; Standort / { Proxy_Set_Header HOST $Host; Proxy_Set_Header X-Real-IP $Remote_Addr; proxy_set_header Client-IP $remote_addr; proxy_set_header X-Weitergeleitet-Für $proxy_add_x_forwarded_for; Proxy-Passwort http://nginx_slb; } }
2) Importieren Sie das Nginx-Installationspaket und entpacken Sie es
CD .. rz -E #Laden Sie das komprimierte Nginx-Paket wie folgt hoch: nginx-1.12.0.tar.gz tar zxvf nginx-1.12.0.tar.gz #Dekomprimieren
3) Erstellen Sie einen Nginx-Programmbenutzer und installieren Sie abhängige Pakete
Benutzeradd -M -s /sbin/nologin nginx yum -y installiere gcc pcre-devel zlib-devel gcc-c++ make
4) Optimieren Sie den Pfad nach dem Kompilieren und Installieren
cd nginx-1.12.0/ ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx && make && make install ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/
5) Ändern Sie die Nginx-Konfigurationsdatei
cd /usr/local/nginx/conf/ vim nginx.conf http { include vhost/*.conf; #Fügen Sie diese Konfiguration in Zeile 19 hinzu
6) Erstellen Sie vhost und ein Protokollverzeichnis für den Nginx-Dienst
mkdir vhost mkdir /var/log/nginx nginx #Starten Sie nginx netstat -natp | grep :80 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 59892/nginx: Master
7) Übergeben Sie das komprimierte Paket consul-template_0.19.3_linux_amd64.zip und entpacken Sie es
cd /opt/ rz -E # Übergeben Sie die Vorlagendatei wie folgt consul-template_0.19.3_linux_amd64.zip entpacken Sie consul-template_0.19.3_linux_amd64.zip mv consul-template /usr/local/bin/
8) Starten Sie Consul-Template im Vordergrund (oder im Hintergrund).
Konsul-Vorlage --consul-addr 192.168.80.10:8500 \ --template "/opt/consul/nginx.ctmpl:/usr/local/nginx/conf/vhost/clj.conf:/usr/local/nginx/sbin/nginx -s neu laden" \ --log-level=Informationen
9) Öffnen Sie ein neues Terminal, um zu prüfen, ob die Konfigurationsdatei generiert wird
cd /usr/local/nginx/conf/vhost/ vim clj.conf
10) Fügen Sie einen Nginx-Container mit Port 85 auf dem Registrator-Server hinzu
docker run -itd -p:85:80 --name test-05 -h test05 nginx
11) Überprüfen Sie, ob sich die Vorlagenserviceseite des Konsulservers geändert hat
12) Überprüfen Sie die Konfigurationsdatei erneut (Sie können sehen, dass ein Port 85 hinzugefügt wurde. Wenn Sie einen Container mit Docker Stop stoppen, ändert sich die Konfigurationsdatei entsprechend).
13) Ändern Sie die Standarddatei html.index im Container-Site-Verzeichnis von nginx
14) Zugriffstest im Browser
1) Richten Sie zuerst den Konsuldienst ein
rz -y #Importieren Sie das Consul-Komprimierungspaket consul_0.9.2_linux_amd64.zip mv consul /usr/local/bin/
2) Fügen Sie dem vorhandenen Cluster einen Server mit einer vorhandenen Docker-Umgebung hinzu
Konsulagent \ -server \ --bootstrap \ -ui \ -data-dir=/var/lib/consul-data \ -bind=192.168.80.30 \ -client=0.0.0.0 \ -node=consul-server02 \ -enable-script-checks=true \ -datacenter=dc1 \ -join 192.168.80.10 &> /var/log/consul.log &
--enable-script-checks=true | Stellen Sie den verfügbaren Prüfdienst ein |
---|---|
-Rechenzentrum | Name des Rechenzentrums |
-verbinden | Einem vorhandenen Cluster beitreten |
--enable-script-checks=true
3) Ansicht auf dem Consul-Server
Dies ist das Ende dieses Artikels über Updates und Entdeckungen des Docker-Consul-Containerdienstes. Weitere relevante Inhalte zum Docker-Consul-Container finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!
<<: JavaScript-Closures erklärt
>>: Eine kurze Analyse des Unterschieds zwischen und und wo in der MySQL-Verbindungsabfrage
Vorwort Arrays sind eine spezielle Art von Objekt...
HTML5 fügt weitere semantische Tags hinzu, wie et...
1. Abgerundeter Rand: CSS- CodeInhalt in die Zwis...
Docker-Container-Verbindung 1. Netzwerk-Port-Mapp...
[Problembeschreibung] Unsere Produktionsumgebung ...
Inhaltsverzeichnis Prototypen verstehen Prototypo...
Code kopieren Der Code lautet wie folgt: <html...
Überprüfen Sie, ob MySQL bereits unter Linux inst...
Das Image kann auf hub.docker.com gespeichert wer...
VMware-Workstations starten den virtuellen Maschi...
Im Allgemeinen bietet MySQL standardmäßig eine Vi...
Inhaltsverzeichnis 1. Ternäres Operatorurteil 2. ...
Tutorial zur Installation und Kennworteinstellung...
Die Protokolle in MySQL umfassen: Fehlerprotokoll...
Hier sind die detaillierten Schritte: 1. Überprüf...