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公司推出的容器化数据中心管理平台,也称作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系列(一)- 快速搭建云原生架构的实践环境的更多相关文章
- Docker Data Center系列(二)- UCP安装指南
本系列文章演示如何搭建一个mini的云平台和DevOps实践环境. 基于这套实践环境,可以部署微服务架构的应用栈,演练提升DevOps实践能力. 1 系统要求 1.1 硬件和软件要求 Linux内核版 ...
- Docker Data Center系列(四)- 离线安装UCP和DTR
本系列文章演示如何搭建一个mini的云平台和DevOps实践环境. 基于这套实践环境,可以部署微服务架构的应用栈,演练提升DevOps实践能力. 1 离线安装UCP 1.1 可用版本 Version ...
- Docker Data Center系列(三)- DTR安装指南
本系列文章演示如何搭建一个mini的云平台和DevOps实践环境. 基于这套实践环境,可以部署微服务架构的应用栈,演练提升DevOps实践能力. 1 系统要求 1.1 硬件和软件要求 成为UCP管理的 ...
- Docker Data Center系列(五)- 使用自定义的TLS安全认证
本系列文章演示如何搭建一个mini的云平台和DevOps实践环境. 基于这套实践环境,可以部署微服务架构的应用栈,演练提升DevOps实践能力. 1 名词说明 CSR: Certificate Sig ...
- 【山外笔记-云原生】《Docker+Kubernetes应用开发与快速上云》读书笔记-2020.04.25(六)
书名:Docker+Kubernetes应用开发与快速上云 作者:李文强 出版社:机械工业出版社 出版时间:2020-01 ISBN:9787111643012 [山外笔记-云原生]<Docke ...
- 使用Velero Restic快速完成云原生应用迁移至ACK集群
本文记录使用Velero Restic快速完成云原生应用迁移至ACK集群的实践过程. 0. 实践步骤概览 (1)创建GKE集群(或自建Kubernetes集群)(2)在GKE集群上部署示例应用Jenk ...
- 新书《OpenShift云原生架构:原理与实践》第一章第三节:企业级PaaS平台OpenShift
近十年来,信息技术领域在经历一场技术大变革,这场变革正将我们由传统IT架构及其所支撑的臃肿应用系统时代,迁移至云原生架构及其所支撑的敏捷应用系统时代.在这场变革中,新技术的出现.更新和淘汰之迅速,以及 ...
- 腾讯 Techo 开发者大会首发来袭!云原生中间件技术实践等你来!
腾讯 Techo 开发者大会是由腾讯云发起的面向全球开发者和技术爱好者的年度盛会,2019 年 11 月 6 日 - 7 日将在北京嘉里大酒店首次召开. 作为一个专注于前沿技术研讨的非商业大会,Tec ...
- .NET 云原生架构师训练营(模块一 架构师与云原生)--学习笔记
目录 什么是软件架构 软件架构的基本思路 单体向分布式演进.云原生.技术中台 1.1 什么是软件架构 1.1.1 什么是架构? Software architecture = {Elements, F ...
随机推荐
- MVC中的JS和CSS压缩
小说一下Js和CSS压缩的好处: 1.减小了文件的体积 2.减小了网络传输量和带宽占用 3.减小了服务器的处理的压力 4.提高了页面的渲染显示的速度 很多建议将站点的静态文件(如图片.js.css ...
- nvidia 各种卡
cudnn是针对maxwell优化的啊, maxwell下的各种卡都是游戏卡,具体可以见: https://developer.nvidia.com/maxwell-compute-architect ...
- Apache、Tomcat、JBoss、Weblogic四个常用的JavaEE服务器
Apache全球应用最广泛的http服务器,免费,出自apache基金组织 Tomcat应用也算非常广泛的web 服务器,支持部分j2ee,免费,出自 apache基金组织 JBoss开源的应用服务器 ...
- 建立临时的表 数据 空值 与 NULL 转换
if exists ( select * from INFORMATION_SCHEMA.tables where table_name = 'Config_Order_ChargesToPreVie ...
- 物理卷操作命令:pvcreate,pvscan,pvdisplay.卷组操作命令:vgcreate,vgdisplay.
新硬盘创建LVM系统过程. 物理卷操作命令:pvcreate,pvscan,pvdisplay. 卷组操作命令:vgcreate,vgdisplay. 逻辑卷操作命令:lvcreate,lvdispl ...
- 《python基础教程》笔记之 字典
字典创建 字典由多个键值对组成,每个键和对应值之间用冒号隔开,项之间用逗号隔开,而整个字典用一对大括号括起来,如 >>> phonebook={'alice':'0123', 'Be ...
- Mybatis之ResultMap一个简短的引论,关联对象
基础部分能够查看我的还有一篇博客http://blog.csdn.net/elim168/article/details/40622491 MyBatis中在查询进行select映射的时候.返回类型能 ...
- UVA10537 Toll! Revisited
difkstra + 路径输出 The Toll! Revisited Time Limit: 3000MS Memory Limit: Unknown 64bit IO Format: %lld & ...
- Linux修改IP永久生效
修改IP永久生效按以下方法: 1)修改配置文件vi /etc/sysconfig/network-scripts/ifcfg-eth0(eth0,第一块网卡,如果是第二块则为eth1) 按如下修改ip ...
- Leetcode(三)无重复字符的最长子串
3. 无重复字符的最长子串 题目描述 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最 ...