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,密码会在安装时提示。

在安装节点上执行命令:

 $ 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一致。

在安装节点上执行命令:

$ 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节点上执行以下命令:

$ 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安全认证

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术专栏

SpringBoot Docker 部署

昨天尝试了下SpringBoot 的Docker部署,虽然踩了很多坑,但是总算是弄出来了,下面整理一下思路,方便以后使用。 这里部署的难点,主要是我的Spri...

2.5K3
来自专栏容器云生态

overlayfs存储驱动的使用以及技术探究

overlayfs存储驱动的使用以及技术探究 1.overlayfs 基本概念 一种联合文件系统,设计简单,速度更快。overlayfs在linux主机上只有两...

39210
来自专栏一英里广度一英寸深度的学习

Hadoop HDFS分布式文件系统Docker版

  如果你要在本机做开发,配置IDE环境,想要连接到Docker中,推荐使用Docker toolBOX。docker for mac 版本没有docker0网...

5372
来自专栏BestSDK

基于Docker的PHP开发环境

【编者的话】本文作者是Geoffrey,他是一个PHP的Web开发者,喜欢DevOps和Docker。本文主要介绍了如何使用Docker构建PHP的开发环境,文...

3259
来自专栏jeremy的技术点滴

基于Docker for macOS的Kubernetes本地环境搭建与应用部署

2.1K5
来自专栏CRPER折腾记

Docker折腾记: (1)构建yapi容器,从构建发布到可用

Docker/Linux/Node基础, 比如Linux和docker的常用命令,shell的编写等等

3862
来自专栏云计算教程系列

如何在Ubuntu 16.04上使用Docker Swarm安装和保护OpenFaaS

无服务器架构从开发人员隐藏服务器实例,并且通常公开允许开发人员在云中运行其应用程序的API。这种方法可以帮助开发人员快速部署应用程序,因为他们可以将配置和维护实...

4471
来自专栏技术翻译

使用Kubernetes和Ambassador API Gateway部署Java应用程序

在本文中,您将学习如何将三个简单的Java服务部署到Kubernetes(通过新的Docker for Mac / Windows集成在本地运行),并通过Kub...

7982

使用Helm将应用程序部署到IBM Cloud上的Kubernetes

Helm是Kubernetes的包管理器。借助Helm,您可以非常方便地将应用程序,工具和数据库(如MongoDB,PostgreSQL,WordPress和A...

3259
来自专栏纯洁的微笑

Spring Boot 2.0(六):使用 Docker 部署 Spring Boot 开源软件云收藏

云收藏项目已经开源2年多了,作为当初刚开始学习 Spring Boot 的练手项目,使用了很多当时很新的技术,现在看来其实很多新技术是没有必要使用的,但做为学习...

3917

扫码关注云+社区

领取腾讯云代金券