本系列文章演示如何搭建一个mini的云平台和DevOps实践环境。

基于这套实践环境,可以部署微服务架构的应用栈,演练提升DevOps实践能力。

1 系统要求

1.1 硬件和软件要求

  • Linux内核版本3.10或更高
  • Docker EE Engine版本17.06.2-ee-8; 的值n在-ee-*后缀必须是8或更高
  • 静态IP地址

1.2 最低配置

  • 管理节点 8GB RAM
  • 工作节点 4GB RAM
  • 3GB 可用磁盘空间

1.3 推荐配置

  • 管理节点 16GB RAM
  • 管理节点 4个vCPU
  • 25-100GB 可用磁盘空间

1.4 操作系统支持

  • CentOS 7.4 (本文中默认使用的操作系统)
  • Red Hat Enterprise Linux 7.0, 7.1, 7.2, or 7.3
  • Ubuntu 14.04 LTS or 16.04 LTS
  • SUSE Linux Enterprise 12

1.5 其它

  • 同步时区和时间
  • 一致的主机名策略
  • 内部的DNS

1.6 版本适配

  • docker 17.06.2.ee.8+
  • UCP 3.0.2 : DTR 2.5.3
  • UCP 3.0.0 : DTR 2.5.1

注:DDC从UCP 3.0.0开始同时支持swarm和k8s。

1.7 网络要求

安装过程中UCP节点需要能下载docker官网的资源,如果不能访问,可通过其它机器下载软件包,然后执行离线安装。

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

1.8 使用的端口

在主机上安装UCP时,需要打开一系列端口以传入流量。这些端口都将接收来自一组主机的流量,根据主机来源的不同,端口可分为三个Scope:

  • External:流量通过终端用户交互从集群外部到达。
  • Internal:流量从同一集群中的其他主机到达。
  • Self:流量只从同一主机上的进程到达。
Hosts Port Scope Purpose
managers, workers TCP 179 Internal Port for BGP peers, used for kubernetes networking
managers TCP 443 (configurable) External, Internal Port for the UCP web UI and API
managers TCP 2376 (configurable) Internal Port for the Docker Swarm manager. Used for backwards compatibility
managers TCP 2377 (configurable) Internal Port for control communication between swarm nodes
managers, workers UDP 4789 Internal Port for overlay networking
managers TCP 6443 (configurable) External, Internal Port for Kubernetes API server
managers, workers TCP 6444 Self Port for Kubernetes API reverse proxy
managers, workers TCP, UDP 7946 Internal Port for gossip-based clustering
managers, workers TCP 10250 Internal Port for Kubelet
managers, workers TCP 12376 Internal Port for a TLS authentication proxy that provides access to the Docker Engine
managers, workers TCP 12378 Self Port for Etcd reverse proxy
managers TCP 12379 Internal Port for Etcd Control API
managers TCP 12380 Internal Port for Etcd Peer API
managers TCP 12381 Internal Port for the UCP cluster certificate authority
managers TCP 12382 Internal Port for the UCP client certificate authority
managers TCP 12383 Internal Port for the authentication storage backend
managers TCP 12384 Internal Port for the authentication storage backend for replication across managers
managers TCP 12385 Internal Port for the authentication service API
managers TCP 12386 Internal Port for the authentication worker
managers TCP 12387 Internal Port for the metrics service
managers TCP 12388 Internal Internal Port for the Kubernetes API Server
a, 如果没有firewalld,先要安装firewalld
$ yum install firewalld
b, 开启防火墙
$ systemctl start firewalld.service
c, 查看端口是否开放
$ firewall-cmd --zone=public --query-port=443/tcp
d, 开放端口
$ firewall-cmd --zone=public --add-port=443/tcp --permanent
e, 重载策略
$ firewall-cmd --reload

2 安装UCP

2.1 验证系统要求

安装UCP的第一步是确保具备UCP安装运行的所有要求。

2.2 安装Docker EE

确保在所有节点上安装相同的Docker EE版本。

如果是创建已安装Docker EE的虚拟机模板,请确保/etc/docker/key.json文件未包含在虚拟机映像中。配置虚拟机时,重新启动Docker守护程序以生成新/etc/docker/key.json文件。

CentOS7 安装 Docker EE,请参考这里

2.3 安装UCP

a, SSH到要安装UCP的主机。
b, 运行如下命令:
# Pull the latest version of UCP
$ docker image pull docker/ucp:3.0.2 # Install UCP
$ docker container run --rm -it --name ucp \
-v /var/run/docker.sock:/var/run/docker.sock \
docker/ucp:3.0.2 install \
--host-address <node-ip-address> \ # 安装UCP的主机IP
--interactive

安装命令会以交互模式运行,安装过程中会提示输入必要的配置值,主要是管理员登录名和密码等。

安装完成后,访问UCP首页https://<node-ip-address>

使用管理员登录名和密码登录,登录成功后会进入默认主页仪表盘

注意:

  • host-address 最好用IP;
  • 安装过程中可能需要登录store.docker.com, 用自己的注册账号登录;
  • 安装过程中的输入值也可以在命令中以参数方式提供,具体请参考官方文档。

2.4 授权

a, 转到Docker Store并购买Docker EE订阅,购买或免费试用许可。
b, 在UCP Web UI中,导航到管理员设置页面,在左侧菜单中,单击许可证

c, 单击上传许可证 ,弹出窗口中选择已经下载好的(.lic)文件,UCP会使用新文件进行更新。

2.5 其它UCP命令

a, 更新UCP
$ docker image pull docker/ucp:3.0.2

$ docker container run --rm -it --name ucp -v /var/run/docker.sock:/var/run/docker.sock docker/ucp:3.0.2 upgrade --interactive
b, 重启UCP
$ docker container run -it --rm --name ucp -v /var/run/docker.sock:/var/run/docker.sock docker/ucp:3.0.2 restart
c, 卸载UCP
$ docker container run --rm -it -v /var/run/docker.sock:/var/run/docker.sock --name ucp docker/ucp:3.0.2 uninstall-ucp --interactive

3 配置UCP

3.1 加入新节点

a, 在UCP Web UI中,导航到共享的资源下的节点页面,然后单击添加节点按钮添加新节点。

b, 在“ 添加节点页面中,选择节点类型LINUX。其它都默认。
c, 单击复制图标

复制docker swarm join节点用于加入群集的命令。

d, 对于要加入群集的每个节点,使用ssh登录并运行复制的join命令。join命令完成后,该节点将显示在UCP Web UI中的节点页面上。

3.2 配置自定义TLS安全认证

所有UCP服务都使用HTTPS,以确保客户端和UCP之间的所有通信是加密的。默认情况下,这是使用不受客户端工具(如Web浏览器)信任的自签名TLS证书完成的。

因此,当访问UCP时,浏览器会警告不信任UCP或UCP具有无效证书。

可以将UCP配置为使用自己的TLS证书,以便浏览器和客户端工具自动信任它。

a, 在UCP Web UI中,导航到管理员设置页面。
b, 在左侧菜单中,单击证书

c, 上传证书和密钥
  • cacert.pem:CA证书。
  • server.pem:服务器证书。
  • server.key:私钥。

如何为UCP生成证书和密钥,请参考这里

d, 最后,单击保存使更改生效。

系列文章

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

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

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

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

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

Docker Data Center系列(二)- UCP安装指南的更多相关文章

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

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

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

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

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

    本系列文章演示如何快速搭建一个简单的云原生架构的实践环境. 基于这个基础架构,可以持续部署微服务架构的应用栈,演练敏捷开发过程,提升DevOps实践能力. 1 整体规划 1.1 拓扑架构 1.2 基础 ...

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

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

  5. Ubuntu docker 使用命令 系列二

    1.下载官方远程仓下的镜像:sudo docker pull <docker 镜像> ,sudo docker pull centos (没有指定版本,就是下载的最新的os) 2. 下载某 ...

  6. Docker入坑系列(二)

    Docker入坑系列(二) 上一篇我们为Docker创造了一个良好的生活环境,这一篇我们就开始让Docker活起来. 安装Docker ok,原文地址在这里. 当然,我只是自己翻译了一下而已- -跟着 ...

  7. Docker 系列二(操作镜像).

    一.镜像管理 1.拉取镜像 docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签] -- Docker 镜像仓库地址 :一般是 域名或者IP[:端口号 ...

  8. WPF入门教程系列(二) 深入剖析WPF Binding的使用方法

    WPF入门教程系列(二) 深入剖析WPF Binding的使用方法 同一个对象(特指System.Windows.DependencyObject的子类)的同一种属性(特指DependencyProp ...

  9. 第四章 使用Docker镜像和仓库(二)

    第四章 使用Docker镜像和仓库(二) 回顾: 开始学习之前,我先pull下来ubuntu和fedora镜像 [#9#cloudsoar@cloudsoar-virtual-machine ~]$s ...

随机推荐

  1. [Swift]LeetCode236. 二叉树的最近公共祖先 | Lowest Common Ancestor of a Binary Tree

    Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree. According ...

  2. java中this和super关键字的使用

    这几天看到类在继承时会用到this和super,这里就做了一点总结,与各位共同交流,有错误请各位指正~ this this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针. this ...

  3. redux-thunk 源码学习记录

    redux触发store更新,使用的dispatch(action),在关于createStore的源码解读中可以看到,store.dispatch限制了action必须是一个纯对象.是为了保持red ...

  4. java多线程(5)---ThreadPoolExecutor

    ThreadPoolExecutor 官方API解释线程池的好处: (1)通过重用线程池中的线程,来减少每个线程创建和销毁的性能开销. (2)对线程进行一些维护和管理,比如定时开始,周期执行,并发数控 ...

  5. asp.net core系列 31 EF管理数据库架构--必备知识 反向工程

    一.   反向工程 反向工程是基于数据库架构,生成的实体类和DbContext类代码的过程,对于Visual Studio开发,建议使用PMC.对于其他开发环境,请选择.NET Core CLI工具( ...

  6. Android--MediaRecorder录音录像

    前言 Android除了支持播放多媒体文件之外,还可以从对应的硬件中捕获多媒体,比如从麦克风录音.从摄像头录像等.本篇博客讲解一下Android下如何通过MediaRecorder进行录音以及录像的步 ...

  7. 《HelloGitHub月刊》第 05 期

    <HelloGitHub>第 05 期 兴趣是最好的老师,<HelloGitHub>就是帮你找到兴趣! 欢迎各路人士加入本项目,丰富月刊的内容,也可以直接在Issue(需要登录 ...

  8. 如何以管理员身份运行cmd

    点击屏幕最左下角的“开始”按钮,选择“运行”命令:   在弹出的“运行”对话框中输入“CMD”命令,再单击“确定”按钮:   正常打开了DOS命令提示符窗口了.但是是“user”权限下:   有时,“ ...

  9. so beautiful so white

    Topic Link http://ctf5.shiyanbar.com/stega/white.zip 1) 打开压缩包,接着打开图片,发现是白色的但根据提示  压缩包的密码就藏在这幅白色图片中,仔 ...

  10. 痞子衡嵌入式:一表全搜罗常见短距离无线通信协议(Wi-Fi/Bluetooth/ZigBee/Thread...)

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是常见短距离无线通信协议. 短距离无线通信是物联网的基础,随着物联网IoT的火热发展,各种短距离无线通信协议也是层出不穷,这些协议标准各有 ...