Docker consul
consul是一个服务管理软件,可用来发现服务、健康检查等。
Docker consul使用背景
运用容器部署的服务,后方的服务节点并再是一台主机,而是很多的容器,当服务不可用容器会被销毁,生成新的容器,那么地址变化,那在进行请求转发的时候需要不同的地址,如nginx配置中upstream要变,那么可由consul来告诉nginx,自动更改配置文件,如果没有consul的话,也可以就是要手动更改,比较不太现实。
Docker consul服务更新与发现
在docker consul拓扑中,由consul agent对接后方的容器,并发现他们的状态变化,将变化情况交给consul server,由consul server告诉consul template,consul template是配置文件的模板,可由后方容器的变化情况修改配置文件。
Harbor私有仓库
Harbor
Harbor是构建企业级私有docker镜像的仓库的开源解决方案,它是Docker Registry的更高级封装,它除了提供友好的Web UI界面,角色和用户权限管理,用户操作审计等功能外,它还整合了K8s的插件(Add-ons)仓库,即Helm通过chart方式下载,管理,安装K8s插件,而chartmuseum可以提供存储chart数据的仓库【注:helm就相当于k8s的yum】。
另外它还整合了两个开源的安全组件,一个是Notary,另一个是Clair,Notary类似于私有CA中心,而Clair则是容器安全扫描工具,它通过各大厂商提供的CVE漏洞库来获取最新漏洞信息,并扫描用户上传的容器是否存在已知的漏洞信息,这两个安全功能对于企业级私有仓库来说是非常具有意义的。
Harbor构成
- Proxy
通过一个前置的反向代理统一接收浏览器、Docker客户端的请
求,并将请求转发给后端不同的服务 - Registry
负责储存Docker镜像,并处理docker push/pull命令 - Core services
Harbor的核心功能,包括U、webhook、token服务 - Database
为core services提供数据库服务 - Log collector
日志收集
案例配置
docker consul
案例环境
本次案例通过,通过一台consul服务器和一台用docker跑业务的服务器构成,实现配置的动态变化,案例拓扑如下:
配置如下:
主机 | ip | 系统 | 安装软件 |
---|---|---|---|
consul+nginx | 20.0.0.100 | centos7.6 | docker-ce、compose、consul、consul-template |
docker | 20.0.0.90 | centos7.6 | docker-ce、registrator、可跑各种服务 |
配置步骤
案例前置条件就是要安装docker,如果安装可参考docker篇
- 安装docker和docker-compose
- 实现consul对接后方的容器,可以发现服务和健康检查
- 编写template模板配置文件
- 实现配置文件的动态变化
安装docker和docker-compose
参考博文
consul对接后方的容器
实现consul对接后方的容器,可以发现服务和健康检查
安装consul并运行
[root@docker01 ~]# mkdir /root/consul
[root@docker01 ~]# cd /root/consul
[root@docker01 consul]# unzip consul_0.9.2_linux_amd64.zip
[root@docker01 consul]# mv consul /usr/local/bin
[root@docker01 consul]#consul agent \
-server \
-bootstrap \
-ui \
-data-dir=/var/lib/consul-data \
-bind=20.0.0.100 \
-client=0.0.0.0 \
-node=consul-server01 &> /var/log/consul.log &
consul验证
[root@docke