------------恢复内容开始------------

建立consul服务

在建立consul服务中,每个提供服务的节点(在Docker主机上)都要部署和运行consul的client,server和client agent 节点的集合构成consul cluster。

consul agent的两种运行模式:server和client,这里的server的client只是consul集群层面的区分,与搭建在cluster智商的应用服务无关。以server模式运行的consul agent 节点用于维护consul集群的状态

consul集群部署

  • consul高可用:三台可运许坏一台,五台可运许坏两台

1:consul 192.168.200.11 nginx,consul,consul-template

2:docker01 192.168.200.14 docker-ce,registrator

3: docker02 192.168.200.10 docker-ce,registrator

  • agent:运行一个consul代理
  • -server:切换代理到服务器模式
  • -bootstrap:用于控制一个server是否在bootstrap模式,在一个datacenter中只能有一个server处于bootstrap模式,当一个server处于bootstrap模式时,可以自己选举为raft leader
  • -data-dir:参数指定数据存储目录
  • -bind:还地址用来在集群内部的通讯,集群内所有节点到地址都必须是可达的默认0.0.0.0
  • ui:支持图形界面
  • -data-dir:指定数据目录
  • bind:监听ip
  • -client:可以来自任意地址
[root@consul ~]# unzip consul_0.9.2_linux_amd64.zip
Archive: consul_0.9.2_linux_amd64.zip
inflating: consul bad CRC 7dec9211 (should be a8ed58e8)
[root@consul ~]# mv consul /usr/bin/
[root@consul ~]# nohup consul agent -server -bootstrap -ui -data-dir=/var/lib/consul-data -bind=192.168.200.11 -client=0.0.0.0 -node=consul-server01 &> /var/log/consul.log & [root@consul ~]# consul members #查看集群成员
Node Address Status Type Build Protocol DC
consul-server01 192.168.200.11:8301 alive server 0.9.2 2 dc1
[root@consul ~]# consul info #查看详细信息
[root@consul ~]# consul info | grep leader #本机领导者
leader = true
leader_addr = 192.168.200.11:8300
[root@consul ~]# consul catalog services #查看consul所管理的服务
consul
[root@consul ~]# netstat -lnptu | grep consul #查看consul所有端口
tcp 0 0 192.168.200.11:8300 0.0.0.0:* LISTEN 12895/consul
tcp 0 0 192.168.200.11:8301 0.0.0.0:* LISTEN 12895/consul
tcp 0 0 192.168.200.11:8302 0.0.0.0:* LISTEN 12895/consul
tcp6 0 0 :::8500 :::* LISTEN 12895/consul
tcp6 0 0 :::8600 :::* LISTEN 12895/consul
udp 0 0 192.168.200.11:8301 0.0.0.0:* 12895/consul
udp 0 0 192.168.200.11:8302 0.0.0.0:* 12895/consul
udp6 0 0 :::8600 :::* 12895/consul
#8300:replication和leader farwardingd的端口,在多个server相互之间传递消息的端口
#8301:lan cossipd的端口,在内网使用的端口
#8302:wan gossip的端口,在外网使用的端口
#8500:web的ui界面
#8600:主要做dns协议

端口含义



局域网使用8301,外网使用8302

通过API获取集群信息

容器服务自动加入nginx集群

  • 基于registrator镜像部署容器

    registrator服务会检查应用服务容器运行状态,进行自动注册和注销docker容器服务到服务配置中心consul上
#10,14安装docker

#部署registrator容器服务
[root@docker02 ~]# docker run -d --name=registrator --net=host(网络模式) -v(数据卷映射) /var/run/docker.sock:/tmp/docker.sock --restart=always gliderlabs/registrator:latest -ip=192.168.200.14 consul://192.168.200.11:8500
[root@docker01 ~]# docker run -d --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock --restart=always gliderlabs/registrator:latest -ip=192.168.200.10. consul://192.168.200.11:8500 #测试服务功能
[root@docker01 ~]# mkdir /web
[root@docker01 ~]# vim /web/index.jsp //编写测试页面
<%@page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>docker consul test page</title>
</head>
<body>
<% out.println("Welcome to consul site,http://www.consul.com");%>
</body>
</html>
[root@docker01 ~]# docker load < tomcat.tar //准备tomcat并导入镜像
[root@docker01 ~]# docker run -itd -p:8001:8080 -v /web:/usr/local/tomcat/webapps/ROOT --name docker01-t1 -h docker01-t1 tomcat
#把宿主机的8001和容器内的8080映射,-v把根下的web映射到ROOT那
[root@docker01 ~]# docker run -itd -p 8002:8080 -v /web:/usr/local/tomcat/webapps/ROOT --name docker01-t2 -h docker01-t2 tomcat· #同时测试docker02主机

检测Tomcat

安装consul-template

consul-template是consul自动替换配置文件的应用。一个守护进程,用于实时查询consul集群信息。

#准备template nginx模板文件
[root@consul ~]# mkdir consul
[root@consul ~]# cd consul/
[root@consul consul]# vim nginx.tmp
upstream http_backend{
{{range service "tomcat"}}
server {{.Address}}:{{.Port}};
{{end}}
}
server{
listen 8080;
server_name localhost 192.168.200.11;
access_log /usr/local/nginx/logs/crushlinux-access.log;
index index.html index.jsp 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_set_header http://http_backend;
}
} #检查与依赖包
[root@consul consul]# yum -y install gcc gcc-c++ make pcre-devel zlib-devel openssl-devel ./configure --prefix=/usr/local/nginx --with-http_stub_status_module -- with-http_realip_module --with-pcre --with-http_ssl_module && make -j 2 && make install //编译安装 [root@docker1 ~]# vim /usr/local/nginx/conf/nginx.conf
include vhost/*.conf; //引用vhost下的所有.conf文件 [root@docker1 ~]# mkdir /usr/local/nginx/conf/vhost
[root@docker1 ~]# /usr/local/nginx/sbin/nginx //启动

------------恢复内容结束------------

------------恢复内容开始------------

建立consul服务

在建立consul服务中,每个提供服务的节点(在Docker主机上)都要部署和运行consul的client,server和client agent 节点的集合构成consul cluster。

consul agent的两种运行模式:server和client,这里的server的client只是consul集群层面的区分,与搭建在cluster智商的应用服务无关。以server模式运行的consul agent 节点用于维护consul集群的状态

consul集群部署

  • consul高可用:三台可运许坏一台,五台可运许坏两台

1:consul 192.168.200.11 nginx,consul,consul-template

2:docker01 192.168.200.14 docker-ce,registrator

3: docker02 192.168.200.10 docker-ce,registrator

  • agent:运行一个consul代理
  • -server:切换代理到服务器模式
  • -bootstrap:用于控制一个server是否在bootstrap模式,在一个datacenter中只能有一个server处于bootstrap模式,当一个server处于bootstrap模式时,可以自己选举为raft leader
  • -data-dir:参数指定数据存储目录
  • -bind:还地址用来在集群内部的通讯,集群内所有节点到地址都必须是可达的默认0.0.0.0
  • ui:支持图形界面
  • -data-dir:指定数据目录
  • bind:监听ip
  • -client:可以来自任意地址
[root@consul ~]# unzip consul_0.9.2_linux_amd64.zip
Archive: consul_0.9.2_linux_amd64.zip
inflating: consul bad CRC 7dec9211 (should be a8ed58e8)
[root@consul ~]# mv consul /usr/bin/
[root@consul ~]# nohup consul agent -server -bootstrap -ui -data-dir=/var/lib/consul-data -bind=192.168.200.11 -client=0.0.0.0 -node=consul-server01 &> /var/log/consul.log & [root@consul ~]# consul members #查看集群成员
Node Address Status Type Build Protocol DC
consul-server01 192.168.200.11:8301 alive server 0.9.2 2 dc1
[root@consul ~]# consul info #查看详细信息
[root@consul ~]# consul info | grep leader #本机领导者
leader = true
leader_addr = 192.168.200.11:8300
[root@consul ~]# consul catalog services #查看consul所管理的服务
consul
[root@consul ~]# netstat -lnptu | grep consul #查看consul所有端口
tcp 0 0 192.168.200.11:8300 0.0.0.0:* LISTEN 12895/consul
tcp 0 0 192.168.200.11:8301 0.0.0.0:* LISTEN 12895/consul
tcp 0 0 192.168.200.11:8302 0.0.0.0:* LISTEN 12895/consul
tcp6 0 0 :::8500 :::* LISTEN 12895/consul
tcp6 0 0 :::8600 :::* LISTEN 12895/consul
udp 0 0 192.168.200.11:8301 0.0.0.0:* 12895/consul
udp 0 0 192.168.200.11:8302 0.0.0.0:* 12895/consul
udp6 0 0 :::8600 :::* 12895/consul
#8300:replication和leader farwardingd的端口,在多个server相互之间传递消息的端口
#8301:lan cossipd的端口,在内网使用的端口
#8302:wan gossip的端口,在外网使用的端口
#8500:web的ui界面
#8600:主要做dns协议

端口含义



局域网使用8301,外网使用8302

通过API获取集群信息

容器服务自动加入nginx集群

  • 基于registrator镜像部署容器

    registrator服务会检查应用服务容器运行状态,进行自动注册和注销docker容器服务到服务配置中心consul上
#10,14安装docker

#部署registrator容器服务
[root@docker02 ~]# docker run -d --name=registrator --net=host(网络模式) -v(数据卷映射) /var/run/docker.sock:/tmp/docker.sock --restart=always gliderlabs/registrator:latest -ip=192.168.200.14 consul://192.168.200.11:8500
[root@docker01 ~]# docker run -d --name=registrator --net=host -v /var/run/docker.sock:/tmp/docker.sock --restart=always gliderlabs/registrator:latest -ip=192.168.200.10. consul://192.168.200.11:8500 #测试服务功能
[root@docker01 ~]# mkdir /web
[root@docker01 ~]# vim /web/index.jsp //编写测试页面
<%@page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>docker consul test page</title>
</head>
<body>
<% out.println("Welcome to consul site,http://www.consul.com");%>
</body>
</html>
[root@docker01 ~]# docker load < tomcat.tar //准备tomcat并导入镜像
[root@docker01 ~]# docker run -itd -p:8001:8080 -v /web:/usr/local/tomcat/webapps/ROOT --name docker01-t1 -h docker01-t1 tomcat
#把宿主机的8001和容器内的8080映射,-v把根下的web映射到ROOT那
[root@docker01 ~]# docker run -itd -p 8002:8080 -v /web:/usr/local/tomcat/webapps/ROOT --name docker01-t2 -h docker01-t2 tomcat· #同时测试docker02主机

检测Tomcat

安装consul-template

consul-template是consul自动替换配置文件的应用。一个守护进程,用于实时查询consul集群信息。

#准备template nginx模板文件
[root@consul ~]# mkdir consul
[root@consul ~]# cd consul/
[root@consul consul]# vim nginx.tmp
upstream http_backend{
{{range service "tomcat"}}
server {{.Address}}:{{.Port}};
{{end}}
}
server{
listen 8080;
server_name localhost 192.168.200.11;
access_log /usr/local/nginx/logs/crushlinux-access.log;
index index.html index.jsp 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_set_header http://http_backend;
}
} #检查与依赖包
[root@consul consul]# yum -y install gcc gcc-c++ make pcre-devel zlib-devel openssl-devel ./configure --prefix=/usr/local/nginx --with-http_stub_status_module -- with-http_realip_module --with-pcre --with-http_ssl_module && make -j 2 && make install //编译安装 [root@docker1 ~]# vim /usr/local/nginx/conf/nginx.conf
include vhost/*.conf; //引用vhost下的所有.conf文件 [root@docker1 ~]# mkdir /usr/local/nginx/conf/vhost
[root@docker1 ~]# /usr/local/nginx/sbin/nginx //启动

------------恢复内容结束------------

最新文章

  1. adb device 调试
  2. 数据结构--栈 codevs 1107 等价表达式
  3. csharp通过dll调用opencv函数,图片作为参数
  4. 【HDOJ】1003 Max Sum
  5. ios中框架介绍
  6. WPF Template模版之DataTemplate与ControlTemplate【一】
  7. 使用NPOI读取Excel数据到DataTable
  8. Effective C++ ——资源管理
  9. ☆ [NOI2014] 魔法森林 「LCT动态维护最小生成树」
  10. ROS kinetic语音识别
  11. git回滚部分文件到某个版本
  12. Silverlight界面设计
  13. pt站 扫盲贴 面向小白
  14. WIdo联网代码中文注释
  15. 【转】解决CentOS 64位系统vsftpd 530 login incorrect的问题
  16. 系统引导修复,grub2下的各种骚作
  17. [Oracle] Data Pump 详细使用教程(1)- 总览
  18. 前端 HTML 常用标签 head标签相关内容 link标签
  19. Dockerfile详解(二)
  20. node.js读取到的文件列表

热门文章

  1. nacos服务端和客户端版本不一致的时候,客户端无限刷日志
  2. java.net.ConnectException: Your endpoint configuration is wrong; For more details see: http://wiki.apache.org/hadoop/UnsetHostnameOrPort
  3. Linux下设置目录或文件可读写,但不可以删除权限
  4. Biba模型(MAC)
  5. vue table表格form表单校验输入内容,elment ui table内容校验 form表单input验证
  6. Kongmaster
  7. gradle的配置
  8. HBase对表增查操作 API
  9. 如何在网页打开CAD,DWG文件,(在线CAD)在线CAD平台,H5前端显示CAD,网页CAD
  10. java表达式语言mvel2/ognl/spring-expression