Docker Data Center系列(一)- 快速搭建云原生架构的实践环境

本系列文章演示如何快速搭建一个简单的云原生架构的实践环境。 基于这个基础架构,可以持续部署微服务架构的应用栈,演练敏捷开发过程,提升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.104192.168.1.105

为mysql容器提供持久化存储。

GitLab

192.168.1.102

源码库。

Nexus

192.168.1.102

Maven依赖库。

DNS

192.168.1.101

域名服务器。

1.5 域名配置

自定义域名

yourdomain.com

CNAME

ucp.yourdomain.com 192.168.1.101dtr.yourdomain.com 192.168.1.102jenkins.yourdomain.com 192.168.1.101

1.6 镜像规划

基础镜像

通用镜像

应用镜像

base

common

app

openjdk

rabbitmqmysqljhipster-registryjhipster-consolejhipster-logstashjhipster-elasticsearchjhipster-alerterjhipster-curatorjhipster-dashboardjhipster-zipkin

base-uaabase-identitybase-gateway

2 组件安装

2.1 准备工作

安装UCP和DTR时会从docker公共镜像库下载几十个镜像文件,如果不能访问store.docker.com,可以先把镜像文件下载到本地,然后离线安装。

如何离线安装UCP和DTR,请参考这里

2.2 UCP安装

安装节点

192.168.1.101

域名设置

管理账号

admin,密码会在安装时提示。

在安装节点上执行命令:

代码语言:txt
复制
 $ 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

域名设置

管理账号

admin,密码和UCP一致。

在安装节点上执行命令:

代码语言:txt
复制
$ 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 获取DTR认证

UCP会从DTR上拉取镜像来启动服务,UCP要获取DTR的CA证书;安装完UCP和DTR后,在UCP节点上执行以下命令:

代码语言:txt
复制
$ 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任务

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

系列文章

Docker Data Center系列(一) - 快速搭建云原生架构的实践环境

Docker Data Center系列(二)- UCP安装指南

Docker Data Center系列(三)- DTR安装指南

Docker Data Center系列(四)- 离线安装UCP和DTR

Docker Data Center系列(五)- 使用自定义的TLS安全认证