欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-03-26 11:12:45
一、容器服务的更新与发现拓扑图: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 dock...

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

docker consul容器服务更新与私库harbor1、架构组件的功能:

  • 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私库:

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

docker consul容器服务更新与私库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

本文地址:https://blog.csdn.net/weixin_47151646/article/details/108838138