本文的目标是通过安装部署Docker Data Center和Jenkins,搭建一个mini的云平台和DevOps实践环境。
基于这套实践环境,可以部署微服务体系和提升DevOps实践能力。
1 整体规划
1.1 拓扑架构

1.2 基础设置
硬件配置
最低:2核 CPU,4G 内存,30G 硬盘。
建议:8核 CPU,16G 内存,100G 硬盘。
编号 |
IP |
OS |
主机名 |
角色 |
环境 |
说明 |
A |
192.168.1.101 |
CentOS7.4 |
ddc_node01 |
Manager |
Global |
运行UCP和Jenkins的节点 |
B |
192.168.1.102 |
CentOS7.4 |
ddc_node02 |
Worker |
Global |
运行DTR的节点 |
C |
192.168.1.103 |
CentOS7.4 |
ddc_node03 |
Worker |
Data |
运行有状态服务容器的节点 |
D |
192.168.1.104 |
CentOS7.4 |
ddc_node04 |
Worker |
Dev |
运行无状态服务容器和GFS Server的节点 |
E |
192.168.1.105 |
CentOS7.4 |
ddc_node05 |
Worker |
Dev |
运行无状态服务容器和GFS Server的节点 |
1.3 DDC
DDC是Docker Data Center的简称,是Docker公司推出的容器化数据中心管理平台。它的编排核心是swarm,包含2个主要组件UCP和DTR。
与K8s和Mesos DC/OS对比,DDC更加简洁和易用;安装包都是免费的,商业许可按节点收费。
组件 |
全称 |
安装节点 |
版本 |
说明 |
UCP |
Universal Control Plane |
192.168.1.101 |
3.0.0 |
管理节点,服务,镜像,容器,网络,数据卷等。 |
DTR |
Docker Trusted Registry |
192.168.1.102 |
2.5.0 |
管理内部docker镜像库。 |
1.4 配套组件
组件名 |
安装节点 |
说明 |
Jenkins |
192.168.1.101 |
配置CICD任务。 |
GlusterFS |
192.168.1.104 192.168.1.105 |
为mysql容器提供持久化存储。 |
GitLab |
公司内网服务器 |
源码库。 |
Nexus |
公司内网服务器 |
Maven依赖库。 |
DNS |
公司内网服务器 |
如果公司没有,在任意节点上装一个DNS Server。 |
1.5 域名配置
自定义域名 |
yourdomain.com |
CNAME |
ucp.yourdomain.com 192.168.1.101 dtr.yourdomain.com 192.168.1.102 jenkins.yourdomain.com 192.168.1.101 |
1.6 镜像规划
基础镜像 |
通用镜像 |
应用镜像 |
base |
common |
app |
openjdk |
redis mysql jhipster-registry jhipster-console jhipster-logstash jhipster-elasticsearch jhipster-alerter jhipster-curator jhipster-dashboard jhipster-zipkin |
microservice1 microservice2 |
2 组件安装
2.1 准备工作
安装UCP和DTR时会从docker公共镜像库下载几十个镜像文件,如果不能访问store.docker.com,可以先把镜像文件下载到本地,然后离线安装。
如何离线安装UCP和DTR,请参考这里。
2.2 UCP安装
安装节点 |
192.168.1.101 |
域名设置 |
https://ucp.yourdomain.com |
管理账号 |
admin,密码会在安装时提示。 |
在安装节点上执行命令:
$ docker container run --rm -it --name ucp -v /var/run/docker.sock:/var/run/docker.sock docker/ucp:3.0.0 install --host-address 192.168.1.101 --interactive
更加完整的UCP安装文档,请参考这里。
2.3 DTR安装
安装节点 |
192.168.1.102 |
域名设置 |
https://dtr.yourdomain.com |
管理账号 |
admin,密码和UCP一致。 |
在安装节点上执行命令:
$ docker run -it --rm docker/dtr:2.5.0 install --dtr-external-url https://dtr.yourdomain.com --ucp-node tx-aaw001 --ucp-username admin --ucp-url https://ucp.yourdomain.com --ucp-insecure-tls
更加完整的DTR安装文档,请参考这里。
2.4 安装CA认证
UCP会从DTR上拉取镜像来启动服务,UCP要获取DTR的CA证书;安装完UCP和DTR后,在UCP节点上执行以下命令:
$ curl -k https://dtr.devops.rootcloud.com/ca -o /etc/pki/ca-trust/source/anchors/dtr.devops.rootcloud.com.crt
$ update-ca-trust
$ systemctl restart docker.service
2.5 GlusterFS安装
安装模式 |
安装位置 |
宿主机 |
192.168.1.104 (master) 192.168.1.105 |
更加完整的GlusterFS安装文档,请参考这里。
2.6 Jenkins安装
a, 安装软件包
软件包 |
安装模式 |
版本 |
安装节点 |
安装路径 |
openjdk |
宿主机 |
1.8 |
192.168.1.101 |
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.*** |
maven |
宿主机 |
3.5.3 |
192.168.1.101 |
/usr/local/maven/apache-maven-3.5.3 |
docker |
宿主机 |
17.06.2-ee-10 |
192.168.1.101 |
/usr/bin/ |
b, 安装jenkins
安装模式 |
安装节点 |
*端口 |
宿主机 |
192.168.1.101 |
8088 |
Jenkins安装明细,请参考这里。
c, Jenkins全局设置
菜单 |
项目 |
内容 |
系统管理 - 插件管理 |
搜索gitlab, git, maven,docker相关的插件 |
直接安装重要插件:Maven Integration,Maven Artifact ChoiceListProvider (Nexus),GitLab,Gitlab Hook,Build Authorization Token Root,CloudBees Docker Build and Publish,Docker-build-step,Docker。
|
系统管理 - 配置 |
配置gitlab插件和git插件 |
请参考这里
|
系统管理 - 系统配置 |
Maven项目配置 - Local Maven Repository |
maven安装时设置的本地库:/var/lib/maven/repo |
系统管理 - 全局工具配置 |
Maven Configuration - Default settings provider |
/usr/local/maven/apache-maven-3.5.4/conf/settings.xml |
|
Maven Configuration - Default global settings provider |
/usr/local/maven/apache-maven-3.5.4/conf/settings.xml |
|
JDK - JDK安装 |
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.*** |
|
Maven - Maven安装 |
/usr/local/maven/apache-maven-3.5.4/ |
|
Git - Git安装 |
/usr/local/git/bin/git 注意:路径里包括可执行文件的名字(最后那个git) |
|
Docker - Docker 安装 |
name: docker17.06.2-ee-10,Installation root: /usr/bin/ |
d, 创建Jenkins任务
更加完整的任务配置说明,请参考这里。
你现在的气质里,藏着你走过的路,读过的书,爱过的人。
网友评论