本系列文章演示如何快速搭建一个简单的云原生架构的实践环境。

基于这个基础架构,可以持续部署微服务架构的应用栈,演练敏捷开发过程,提升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公司推出的容器化数据中心管理平台,也称作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 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.101
dtr.yourdomain.com 192.168.1.102
jenkins.yourdomain.com 192.168.1.101

1.6 镜像规划

基础镜像 通用镜像 应用镜像
base common app
openjdk rabbitmq
mysql
jhipster-registry
jhipster-console
jhipster-logstash
jhipster-elasticsearch
jhipster-alerter
jhipster-curator
jhipster-dashboard
jhipster-zipkin
base-uaa
base-identity
base-gateway

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

Docker Data Center系列(一)- 快速搭建云原生架构的实践环境的更多相关文章

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

    本系列文章演示如何搭建一个mini的云平台和DevOps实践环境. 基于这套实践环境,可以部署微服务架构的应用栈,演练提升DevOps实践能力. 1 系统要求 1.1 硬件和软件要求 Linux内核版 ...

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

    本系列文章演示如何搭建一个mini的云平台和DevOps实践环境. 基于这套实践环境,可以部署微服务架构的应用栈,演练提升DevOps实践能力. 1 离线安装UCP 1.1 可用版本 Version ...

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

    本系列文章演示如何搭建一个mini的云平台和DevOps实践环境. 基于这套实践环境,可以部署微服务架构的应用栈,演练提升DevOps实践能力. 1 系统要求 1.1 硬件和软件要求 成为UCP管理的 ...

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

    本系列文章演示如何搭建一个mini的云平台和DevOps实践环境. 基于这套实践环境,可以部署微服务架构的应用栈,演练提升DevOps实践能力. 1 名词说明 CSR: Certificate Sig ...

  5. 【山外笔记-云原生】《Docker+Kubernetes应用开发与快速上云》读书笔记-2020.04.25(六)

    书名:Docker+Kubernetes应用开发与快速上云 作者:李文强 出版社:机械工业出版社 出版时间:2020-01 ISBN:9787111643012 [山外笔记-云原生]<Docke ...

  6. 使用Velero Restic快速完成云原生应用迁移至ACK集群

    本文记录使用Velero Restic快速完成云原生应用迁移至ACK集群的实践过程. 0. 实践步骤概览 (1)创建GKE集群(或自建Kubernetes集群)(2)在GKE集群上部署示例应用Jenk ...

  7. 新书《OpenShift云原生架构:原理与实践》第一章第三节:企业级PaaS平台OpenShift

    近十年来,信息技术领域在经历一场技术大变革,这场变革正将我们由传统IT架构及其所支撑的臃肿应用系统时代,迁移至云原生架构及其所支撑的敏捷应用系统时代.在这场变革中,新技术的出现.更新和淘汰之迅速,以及 ...

  8. 腾讯 Techo 开发者大会首发来袭!云原生中间件技术实践等你来!

    腾讯 Techo 开发者大会是由腾讯云发起的面向全球开发者和技术爱好者的年度盛会,2019 年 11 月 6 日 - 7 日将在北京嘉里大酒店首次召开. 作为一个专注于前沿技术研讨的非商业大会,Tec ...

  9. .NET 云原生架构师训练营(模块一 架构师与云原生)--学习笔记

    目录 什么是软件架构 软件架构的基本思路 单体向分布式演进.云原生.技术中台 1.1 什么是软件架构 1.1.1 什么是架构? Software architecture = {Elements, F ...

随机推荐

  1. Supervisor 安装

    在linux或者unix操作系统中,守护进程(Daemon)是一种运行在后台的特殊进程,它独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件.由于在linux中,每个系统与用户进行交流的界 ...

  2. java.io.file

    package cn.edu.tongji.cims.wade.system;     import java.io.*;     public class FileOperate {     pub ...

  3. Filp Game

    Flip Game Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 25573   Accepted: 11052 题目链接: ...

  4. python 字符串 string

    字符串 string 语法: a = 'hello world!' b = "hello world!" 常用操作: 1.乘法操作是将字符串重复输出2遍 >>> ...

  5. AspNet Core :创建自定义 EF Core 链接数据库

    这两天比较忙,写的会慢一点. 我们以控制台演示 EF Core的链接数据库 首先创建控制台程序 创建数据上下文类 EntityTable /// <summary> /// 继承 DbCo ...

  6. 阿里云OSS下载pdf文件,并在pdf文件上添加水印

    代码: 兵马未动,粮草先行 作者: 传说中的汽水枪 如有错误,请留言指正,欢迎一起探讨. 转载请注明出处. 公司要求从阿里云OSS下载pdf文件并且需要添加水印. 因此这里总结一下. 首先添加了一个F ...

  7. Spyder使用IPython Console弹出绘图窗口的设置方法

    http://www.datastudy.cc/article/3cfc3aff3b2c5948b938456e00376276 在使用Spyder的过程中,因为它的绘图,默认是绘图在IPython窗 ...

  8. net 中的一些知识

    这是一篇摘抄的文章 有一些内容对我很有帮助 .有一些内容解释很清晰 所以我拿过来了. 第一遍用了5天时间,第二遍看的时候决定自己复制一份出来于是有了这儿博客. 什么是.NET?什么是.NET Fram ...

  9. HDU 5186 zhx&#39;s submissions 模拟,细节 难度:1

    http://acm.hdu.edu.cn/showproblem.php?pid=5186 题意是分别对每一位做b进制加法,但是不要进位 模拟,注意:1 去掉前置0 2 当结果为0时输出0,而不是全 ...

  10. TXT文件转换成DataSet数据集

    /// <summary> /// TXT文件转换成DataSet数据集 /// </summary> /// <param name="FilePath&qu ...