cónsul portuario
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.
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
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
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
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
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
Abra el navegador y visite http://192.168.177.33:8500
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
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
vim /usr/local/nginx/conf/nginx.conf
//19 include vhost/*.conf;
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
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
Abre otra terminal
192.168.177.8
docker run -itd -p:85:80 --name test-05 -h test05 nginx
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