docker consul容器服务更新与私库harbor

一、容器服务的更新与发现拓扑图:

在这里插入图片描述1、架构组件的功能:

  • consul template:(自动生成nginx的配置文件nginx.conf)

  • consul server:服务发现、更新

  • consul agent:对接后面的节点

  • 代码实现:

实验1:conslu
两个节点:1、做nginx反向代理+consul容器服务     2、nginx和httpd的业务容器节点

1、在监控服务器1上:14.0.0.10
将docker-compose包拖进来到~目录下:
chmod +x docker-compose
mv docker-compose /usr/local/bin/

mkdir consul
cd consul
将consul_0.9.2、consul-template的连个包拖进来。
unzip consul_0.9.2_linux_amd64.zip 
mv consul /usr/local/bin/    
        
consul agent \	                                 '//设置代理'
-server \	                                                 '//服务功能'
-bootstrap \	                                 '//参与选举'
-ui \                                                          '//提供web界面'
-data-dir=/var/lib/consul-data \	'//提供一个代理存储数据目录'
-bind=14.0.0.10 \	                '//绑定本地地址'
-client=0.0.0.0 \	                                 '//面对的客户端地址'
-node=consul-server01 &> /var/log/consul.log &         功能都已开启

consul member                                                    查看集群信息
consul info | grep leader                                       查看管理信息
curl 127.0.0.1:8500/v1/status/peers                    查看集群server成员
curl 127.0.0.1:8500/v1/status/leaders                 查看集群Raf leader
curl 127.0.0.1:8500/v1/catalog/services              查看注册的所有服务
curl 127.0.0.1:8500/v1/catalog/nginx                  查看nginx服务的信息
curl 127.0.0.1:8500/v1/catalog/nodes                 集群节点详细信息

在浏览器上输入“14.0.0.10:8500”即可查看网页界面  “注意需要关闭防火墙墙的安全机制!!!”

在nginx和httpd的业务容器节点上:14.0.0.11
docker run -d \
--name=registrator \                                              '//定义容器名称,对接nginx和consul'
--net=host \                                                            '定义网络'
-v /var/run/docker.sock:/tmp/docker.sock \         '指定数据卷,存储信息' 
--restart=always \    
gliderlabs/registrator:latest \                                   '定义镜像'
-ip=14.0.0.11 \                                                         '指定本地地址'
consul://14.0.0.10:8500
docker ps -a                                                           ‘nginx、httpd与consul成功对接’

docker run -itd -p 83:80 --name test-01 -h test01 nginx
docker run -itd -p 84:80 --name test-02 -h test02 nginx
docker run -itd -p 85:80 --name test-03 -h test03 httpd
docker run -itd -p 86:80 --name test-04 -h test04 httpd      到监控机14.0.0.10:8500上观察已监控到业务容器!!

2、在监控服务器14.0.0.10上:
vim /root/consul/nginx.ctmpl
upstream http_backend {
   {{range service "nginx"}}
    server {{.Address}}:{{.Port}};
     {{end}}
   {{range service "httpd"}}
    server {{.Address}}:{{.Port}};
     {{end}}
}

server {
  listen 88;
  server_name localhost 14.0.0.10;
  access_log /var/log/nginx/kgc.cn-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;
  }
}

部署nginx反向代理服务器:
cd /opt/   
yum install gcc gcc-c++ make expat* pcre* perl* zlib* -y
tar zxvf nginx-1.12.0.tar.gz
cd nginx-1.12.2
./configure --prefix=/usr/local/nginx
make && make install 
vim /usr/local/nginx/conf/nginx.conf     第19行添加
           include vhost/*.conf;
mkdir /usr/local/nginx/conf/vhost/
mkdir /var/log/nginx
/usr/local/nginx/sbin/nginx                    启动nginx反向代理服务
cd /root/consul/                                     将consul-template的包拖进来!
unzip consul-template_0.19.3_linux_amd64.zip 
mv  /usr/local/bin/

consul-template -consul-addr 14.0.0.10:8500 \                          
-template "/root/consul/nginx.ctmpl:/usr/local/nginx/conf/vhost/kgc.conf:/usr/local/nginx/sbin/nginx -s reload" \
--log-level=info

docker logs -f test-01
docker logs -f test-02
docker logs -f test-03
docker logs -f test-04

在浏览器上访问:14.0.0.10:88  监控机上的nginx做反向代理88端口提供服务!! (如果访问不了就换一个端口号)

二、Harbor私库:

在这里插入图片描述

在这里插入图片描述

代码实现:

实验2:注意关闭防火墙机制
1、做私库站点服务器:14.0.0.13
2、客户端服务器:14.0.0.14

第一步:在私库服务服务器的节点上:
将docker-compose、harbor拖进来
chmod +x docker-compose
mv dokcer-compose /usr/local/bin/
tar zxvf harbor-offline-installer-v1.2.2.tgz -C /usr/local/
cd /usr/local/harbor/
vim harbor.cfg      第5行修改
    hostname = 14.0.0.13(本机地址)
sh install.sh                                        安装harbor
到浏览器上访问:14.0.0.13,登录harbor系统
用户名:admin
密码:Harbor12345
本地登录:docker login -u admin -p Harbor12345 http://127.0.0.1
从官网下载镜像上传到自创的私库里面:     1、下载镜像  2、打标签   3、上传动作   “到浏览器上查看是否上传成功?”
现在浏览器上创建kgc的项目组,才能上传!!!!
docker pull nginx
docker tag nginx:latest 127.0.0.1/kgc/nginx:v1    
docker push 127.0.0.1/kgc/nginx

第二步:在客户机服务器的节点上:
vim /usr/lib/systemd/system/docker.service    第14行添加   为了避免https安全机制的干扰
     fd://      --insecure-registry 14.0.0.13        --containerd
systemctl daemon-reload
systemctl restart docker
docker login -u admin -p Harbor12345 http://14.0.0.13
docker tag centos:7 14.0.0.13/kgc/centos7:v1              打标签并上传镜像!!
docker push 14.0.0.13/kgc/centos7
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值