白云区做网站公司,如何制作一个公司网页,网页设计实训报告任务书,如何外贸网络推广目录
一.Consul概述
1.解决了什么问题
2.什么叫微服务或者注册与发现
3.consul的模式
4.相关命令
二.consul 部署
1.consul服务器部署
2.部署docker容器
3.Nginx负载均衡器
3.1.安装启动nginx
3.2.配置nginx负载均衡
3.3.创建配置consul complate模板文件
3.4.添加…目录
一.Consul概述
1.解决了什么问题
2.什么叫微服务或者注册与发现
3.consul的模式
4.相关命令
二.consul 部署
1.consul服务器部署
2.部署docker容器
3.Nginx负载均衡器
3.1.安装启动nginx
3.2.配置nginx负载均衡
3.3.创建配置consul complate模板文件
3.4.添加consul节点
3.5.将节点退出集群 一.Consul概述
1.解决了什么问题
如果后端应用服务器集群节点数量很多前端的负载均衡器配置和管理会很麻烦的问题负载均衡器的后端应用节点配置条目数会很多配置管理起来会很麻烦如果后端应用节点的网络位置发生了变化还需要修改所有调用这些后端应用节点的负载均衡器的配置
consul 可以自动发现并记录这些后端应用节点的网络位置再配合配置中心的配置模板文件自
动生成负载均衡器的配置文件从而省去了人工的管理参与
2.什么叫微服务或者注册与发现
是一种分布式管理系统定位服务的方法在传统的架构中应用程序之间直连到已知的服务已知的服务设备提供的网络、IP地址、基于tcp/ip端口基于现微服务部署服务的动态性数量增加了传统的基于IP端口的形式已经不太适用了服务注册以及发现微服务的位置信息(ip端口健康状况)统一注册到一个中心化的服务注册表中可以允许其他服务动态的查询和发现这些服务 3.consul的模式
client模式可用于接收后端应用服务发来的注册信息并转发给server节点没有持久化能力server模式可用于接收后端应用服务或client节点发来的注册信息还可在server节点之间同步注册信息具有持久化注册信息到本地的能力server-leader节点负责同步注册信息给其它的server节点并对各个节点做健康检查
4.相关命令
consul启动命令
consul agent -server -bootstrap -ui -data-dir/opt/consul/data -bind192.168.80.101 -client0.0.0.0 -nodeconsul-server01 -datacenterdc1 /opt/consul/consul.log 开启server模式 指定数据目录 指定集群内部通信地址 指定外部通信地址 地址集群中的节点名称(要求唯一)consul agent -server -ui -data-dir/opt/consul/data -bind192.168.80.102 -client0.0.0.0 -nodeconsul-server02 -datacenterdc1 -enable-script-checkstrue -join 192.168.80.101 /opt/consul/consul.log registrator启动命令
docker run -d --name registrator --networkhost -v /var/run/docker.sock:/tmp/docker.sock --restartalways gliderlabs/registrator:latest --ip服务器IP consul://192.168.80.101:8500consul-template启动命令
consul-template --consul-addr 192.168.80.101:8500 --template /opt/consul/nginx.ctmpl:/etc/nginx/upstream.conf:/usr/sbin/nginx -s reload --log-levelinfo模板文件路径 配置文件路径 重载命令模板文件格式
{{range service 服务名}} #从指定的service中获取注册信息
{{.Address}}:{{.Port}} # .Address代表注册信息的ip地址 .Port代表注册信息的端口号
{{end}}
二.consul 部署
###关闭和禁止防火墙开机自启功能
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i s/enforcing/disabled/ /etc/selinux/config
192.168.80.101docker192.168.80.102consul192.168.80.103nginx
1.consul服务器部署
192.168.80.102
mkdir /opt/consul
cd !$
上传consul压缩包
unzip consul_0.9.2_linux_amd64.zip
mv consul /usr/local/bin/
consul version
设置代理在后台启动consul服务端
mkdir dataconsul agent \
-server \
-bootstrap \
-ui \
-data-dir/opt/consul/data \
-bind192.168.80.102 \
-client0.0.0.0 \
-nodeconsul-server01 -datacenterdc1 /opt/consul/consul.log ----------------------------------------------------------------------------------------------------------
-server 以server身份启动。默认是client。
-bootstrap 用来控制一个server是否在bootstrap模式在一个数据中心中只能有一个server处于bootstrap模式当一个server处于bootstrap模式时可以自己选举为server-leader。
-bootstrap-expect2 集群要求的最少server数量当低于这个数量集群即失效。
-ui 指定开启UI界面这样可以通过http://localhost:8500/ui这样的地址访问consul自带的web UI 界面。
-data-dir 指定数据存储目录。
-bind 指定用来在集群内部的通讯地址集群内的所有节点到此地址都必须是可达的默认是0.0.0.0。
-client 指定consul绑定在哪个client地址上这个地址提供HTTP、DNS、RPC 等服务默认是 127.0.0.1。
-node 节点在集群中的名称在一个集群中必须是唯一的默认是该节点的主机名。
-datacenter 指定数据中心名称默认是dc1。 netstat -lntp | grep consul
启动consul后默认会监听5个端口
8300集群内数据的读写和复制
8301单个数据中心gossip协议通讯
8302跨数据中心gossip协议通讯
8500提供获取服务列表、注册服务、注销服务等HTTP接口提供UI服务
8600使用DNS协议查看节点信息的端口浏览器访问查看
http://192.168.80.102:8500/ui 查看集群节点成员
consul members 2.部署docker容器
192.168.80.101
docker run --name c1 -d -p 1314:80 nginx:latest
docker run --name c2 -d -p 1315:80 nginx:latest上传registrator.tar到opt目录
docker load -i registrator.tar 导入
docker images docker run -d --name registrator --networkhost -v /var/run/docker.sock:/tmp/docker.sock --restartalways gliderlabs/registrator:latest consul://192.168.9.114:8500
docker ps -a 浏览器查看http:/
cd /etc/nginx
vim nginx.conf
include /etc/nginx/upstream.conf; #32行添加
/192.168.80.102:8500/ui
即在容器中创建、删除容器都可在consulweb页面查看到
3.Nginx负载均衡器
192.168.80.103
3.1.安装启动nginx
cd /etc/yum.repos.d/
上传nginx.repo
yum install -y nginx
systemctl enable --now nginx 3.2.配置nginx负载均衡
cd /etc/nginx
vim nginx.conf
include /etc/nginx/upstream.conf; #32行添加 cd conf.d/
vim conf.d/default.conf
proxy_pass http://backends;
proxy_set_header HOST $host;
proxy_set_header X-REAL-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
添加
touch upstream.conf
upstream backends {server 192.168.80.103:1314;
}nginx -t
systemctl restart nginx
3.3.创建配置consul complate模板文件
cd /opt
mkdir consul
vim nginx.ctmpl
upstream backends {{{range service nginx}}server {{.Address}}:{{.Port}};{{end}}
}上传consul-template_0.19.3_linux_amd64.zip
unzip consul-template_0.19.3_linux_amd64.zip
mv consul-template /usr/local/bin/consul-template --consul-addr 192.168.80.102:8500 --template /opt/consul/nginx.ctmpl:/etc/nginx/upstream.conf:/usr/sbin/nginx -s reload --log-levelinfo #consul-template启动命令 3.4.添加consul节点
consul服务器
cd /usr/local/bin
scp consul 192.168.80.101:pwd
scp consul 192.168.80.103:pwddocker容器节点
mkdir -p /opt/consul/data
consul agent -server -ui -data-dir/opt/consul/data -bind192.168.80.101 -client0.0.0.0 -nodeconsul-server02 -datacenterdc1 -enable-script-checkstrue -join 192.168.80.102 /opt/consul/consul.log mkdir -p /opt/consul/data
consul agent -server -ui -data-dir/opt/consul/data -bind192.168.80.103 -client0.0.0.0 -nodeconsul-server03 -datacenterdc1 -enable-script-checkstrue -join 192.168.80.102 /opt/consul/consul.log
consul members 3.5.将节点退出集群
在想让其退出的节点使用
consul leave