docker-cónsul

1. Descripción general del cónsul

1. Introducción a Consul

Consul es una herramienta de registro y descubrimiento de servicios, que tiene las características de rendimiento distribuido y extendido.
Inserte la descripción de la imagen aquí

2. Funciones de Consul

(1) Admite la verificación de estado y permite el almacenamiento de pares de valores
(2) Basado en el lenguaje Golong, portabilidad sólida
(3) Admite el control de acceso ACL (coopera sin problemas con contenedores livianos como Docker)

3. Actualización y descubrimiento del servicio de contenedores de Docker Consul

Inserte la descripción de la imagen aquí
Interpretación: el establecimiento del servicio de cónsul
(1) cada nodo que brinda servicios debe desplegar y permitir el agente de cónsul
(2) el agente de cónsul tiene dos modos operativos (servidor, cliente)
(3) servidor y cilent son solo la distinción a nivel de clúster de cónsul , No tiene nada que ver con los servicios de la aplicación integrados en el clúster

Segundo, departamento

1. Implementación del servidor (192.168.177.33)

(Necesita instalar docker-ce, compose, consul, consul-template)

mkdir /root/consul
cd consul
rz consul_0.9.2_linux_amd64.zip

unzip consul_0.9.2_linux_amd64.zip

mv consul /usr/bin

Inserte la descripción de la imagen aquí

consul agent \
-server \
-bootstrap \
-ui \
-data-dir=/var/lib/consul-data \
-bind=192.168.177.33 \
-client=0.0.0.0 \
-node=consul-server01 &> /var/log/consul.log &

consul members
consul info | grep leader

Inserte la descripción de la imagen aquí

2. Implementación del cliente (192.168.177.8)

容器服务自动加入nginx集群
安装Gliderlabs/Registrator Gliderlabs/Registrator
可检查容器运行状态自动注册,还可注销docker容器的服务 到服务配置中心
目前支持Consul、Etcd和SkyDNS2

在192.168.177.8节点上,执行以下操作

docker run -d \
--name=registrator \
--net=host \
-v /var/run/docker.sock:/tmp/docker.sock \
--restart=always \
gliderlabs/registrator:latest \
-ip=192.168.177.8 \
consul://192.168.177.33:8500

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

systemctl restart docker
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

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí
Abra el navegador y visite http://192.168.177.33:8500
Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

3. Configure el módulo de plantilla para que se actualice automáticamente

servidor (192.168.177.33)

cd consul/
vim nginx.ctmpl

upstream http_backend {
 {
   
   {range service "nginx"}}
  server {
   
   {.Address}}:{
   
   {.Port}};
  {
   
   {end}}
}

server {
 listen 100;
 server_name localhost 192.168.177.33;
 access_log /var/log/nginx/lic.com-access.log;
 index index.html index.php;
 location / {
        proxy_set_header HOST $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header Client-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://http_backend;
  }     
}

====>:wq

Inserte la descripción de la imagen aquí

yum -y install gcc pcre-devel zlib-devel
rz nginx-1.12.0.tar.gz
tar zxvf nginx-1.12.0.tar.gz -C /opt
cd /opt/nginx-1.12.0

./configure --prefix=/usr/local/nginx

make && make install

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

vim /usr/local/nginx/conf/nginx.conf
//19     include vhost/*.conf;

Inserte la descripción de la imagen aquí

cd /usr/local/nginx/conf/
mkdir vhost
mkdir /var/log/nginx

/usr/local/nginx/sbin/nginx

cd /opt
rz consul-template_0.19.3_linux_amd64.zip

unzip consul-template_0.19.3_linux_amd64.zip

Inserte la descripción de la imagen aquí

mv consul-template /usr/bin
consul-template -consul-addr 192.168.177.33:8500 -template "/root/consul/nginx.ctmpl:/usr/local/nginx/conf/vhost/lic.conf:/usr/local/nginx/sbin/nginx -s reload" --log-level=info

Inserte la descripción de la imagen aquí
Abre otra terminal
Inserte la descripción de la imagen aquí

192.168.177.8

docker run -itd -p:85:80 --name test-05 -h test05 nginx

Inserte la descripción de la imagen aquí
Inserte la descripción de la imagen aquí

4. Pruebe el acceso al servidor proxy

http://192.168.177.33:100/

docker logs -f test-01
docker logs -f test-02
docker logs -f test-05

Supongo que te gusta

Origin blog.csdn.net/tefuiryy/article/details/115352822
Recomendado
Clasificación