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

1 整体规划

1.1 拓扑架构

Java devops持续开发部署架构图_devops

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任务

更加完整的任务配置说明,请参考这里。



你现在的气质里,藏着你走过的路,读过的书,爱过的人。