本系列文章演示如何快速搭建一個簡單的雲原生架構的實踐環境。
基於這個基礎架構,能夠持續部署微服務架構的應用棧,演練敏捷開發過程,提高DevOps實踐能力。html
硬件配置
最低:2核 CPU,4G 內存,30G 硬盤。
建議:8核 CPU,16G 內存,100G 硬盤。java
編號 | 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的節點 |
DDC是Docker Data Center的簡稱,是Docker公司推出的容器化數據中心管理平臺,也稱做Docker 企業版。它的編排核心是swarm,包含2個主要組件UCP和DTR。
與K8s和Mesos DC/OS對比,DDC更加簡潔和易用;安裝包都是免費的,商業許可按節點收費。node
組件 | 全稱 | 安裝節點 | 版本 | 說明 |
---|---|---|---|---|
UCP | Universal Control Plane | 192.168.1.101 | 3.0.0 | 管理節點,服務,鏡像,容器,網絡,數據卷等。 |
DTR | Docker Trusted Registry | 192.168.1.102 | 2.5.0 | 管理內部docker鏡像庫。 |
組件名 | 安裝節點 | 說明 |
---|---|---|
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 | 域名服務器。 |
自定義域名 | yourdomain.com |
CNAME | ucp.yourdomain.com 192.168.1.101 dtr.yourdomain.com 192.168.1.102 jenkins.yourdomain.com 192.168.1.101 |
基礎鏡像 | 通用鏡像 | 應用鏡像 |
---|---|---|
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 |
安裝UCP和DTR時會從docker公共鏡像庫下載幾十個鏡像文件,若是不能訪問store.docker.com,能夠先把鏡像文件下載到本地,而後離線安裝。
如何離線安裝UCP和DTR,請參考這裏。mysql
安裝節點 | 192.168.1.101 |
域名設置 | https://ucp.yourdomain.com |
管理帳號 | admin,密碼會在安裝時提示。 |
在安裝節點上執行命令:git
$ 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安裝文檔,請參考這裏。sql
安裝節點 | 192.168.1.102 |
域名設置 | https://dtr.yourdomain.com |
管理帳號 | admin,密碼和UCP一致。 |
在安裝節點上執行命令:docker
$ 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安裝文檔,請參考這裏。apache
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
安裝模式 | 安裝位置 |
---|---|
宿主機 | 192.168.1.104 (master) 192.168.1.105 |
更加完整的GlusterFS安裝文檔,請參考這裏。服務器
軟件包 | 安裝模式 | 版本 | 安裝節點 | 安裝路徑 |
---|---|---|---|---|
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/ |
安裝模式 | 安裝節點 | *端口 |
---|---|---|
宿主機 | 192.168.1.101 | 8088 |
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/ |
更加完整的任務配置說明,請參考這裏。
Docker Data Center系列(一) - 快速搭建雲原生架構的實踐環境
Docker Data Center系列(二) - UCP安裝指南
Docker Data Center系列(三) - DTR安裝指南
Docker Data Center系列(四) - 離線安裝UCP和DTR
Docker Data Center系列(五) - 使用自定義的TLS安全認證