Docker Data Center系列(二)- UCP安装指南
本系列文章演示如何搭建一个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安装指南的更多相关文章
- 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系列(一)- 快速搭建云原生架构的实践环境
本系列文章演示如何快速搭建一个简单的云原生架构的实践环境. 基于这个基础架构,可以持续部署微服务架构的应用栈,演练敏捷开发过程,提升DevOps实践能力. 1 整体规划 1.1 拓扑架构 1.2 基础 ...
- Docker Data Center系列(五)- 使用自定义的TLS安全认证
本系列文章演示如何搭建一个mini的云平台和DevOps实践环境. 基于这套实践环境,可以部署微服务架构的应用栈,演练提升DevOps实践能力. 1 名词说明 CSR: Certificate Sig ...
- Ubuntu docker 使用命令 系列二
1.下载官方远程仓下的镜像:sudo docker pull <docker 镜像> ,sudo docker pull centos (没有指定版本,就是下载的最新的os) 2. 下载某 ...
- Docker入坑系列(二)
Docker入坑系列(二) 上一篇我们为Docker创造了一个良好的生活环境,这一篇我们就开始让Docker活起来. 安装Docker ok,原文地址在这里. 当然,我只是自己翻译了一下而已- -跟着 ...
- Docker 系列二(操作镜像).
一.镜像管理 1.拉取镜像 docker pull [选项] [Docker Registry 地址[:端口号]/]仓库名[:标签] -- Docker 镜像仓库地址 :一般是 域名或者IP[:端口号 ...
- WPF入门教程系列(二) 深入剖析WPF Binding的使用方法
WPF入门教程系列(二) 深入剖析WPF Binding的使用方法 同一个对象(特指System.Windows.DependencyObject的子类)的同一种属性(特指DependencyProp ...
- 第四章 使用Docker镜像和仓库(二)
第四章 使用Docker镜像和仓库(二) 回顾: 开始学习之前,我先pull下来ubuntu和fedora镜像 [#9#cloudsoar@cloudsoar-virtual-machine ~]$s ...
随机推荐
- [Swift]LeetCode414. 第三大的数 | Third Maximum Number
Given a non-empty array of integers, return the third maximum number in this array. If it does not e ...
- [Swift]LeetCode767. 重构字符串 | Reorganize String
Given a string S, check if the letters can be rearranged so that two characters that are adjacent to ...
- 【dotNet Core】Swagger下简单的给WebApi分组
Startup.cs下ConfigureServices代码 这里主要在DocInclusionPredicate控制输出那些api. Startup.cs下Configure代码 给Controll ...
- 用Flutter开发的跨平台项目,完美运行在Android和IOS上,Material简洁风格,包括启动页、引导页、注册、登录、首页、体系、公众号、导航、项目,还有漂亮的妹子图库,运行极度流畅,结构清晰,代码规范,值得拥有
Flutter学习资源汇总持续更新中...... Flutter官方网站 Flutter中文网 wendux的Flutter实战 Flutter官方exampleflutter_gallery 阿里巴 ...
- ThinkPHP Redis实现模拟队列
1.入队操作: //入队 public function enqueue() { $redis = new \Redis(); $redis->connect('127.0.0.1',6379) ...
- Java 多线程(一)—— 概念的引入
并发和并行 并行:指两个或多个时间在同一时刻发生(同时发生): 并发:指两个或多个事件在一个时间段内发生. 在操作系统中,安装了多个程序,并发指的是在一段时间内宏观上有多个程序同时运行,这在单 C ...
- SpringBoot入门教程(十八)@value、@Import、@ImportResource、@PropertySource
Spring Boot提倡基于Java的配置.这两篇博文主要介绍springboot 一些常用的注解介绍 v@value 通过@Value可以将外部的值动态注入到Bean中. 添加applicatio ...
- (五)通过Python的select监控多个描述符实现并发连接
概述 本文通过使用select改写之前的服务器程序通过监控多个套接字描述符来实现并发连接并加入了一些机制让程序更加健壮,不过我们所有的实验都是建立在单词发送数据不会超过1024字节,如果超过你需要做特 ...
- iOS逆向开发(7):微信伪装他人
上一节小程介绍了微信在进入"附近的人"时修改位置信息的办法,这一次,小程来修改"自己"的信息,伪装成别人. 但是,这里的伪装只是"本地的伪装" ...
- Java开发知识之Java的数字处理类Math类
Java开发知识之Java的数字处理类Math类 一丶Java.text.DecimalFormat类与NumberFormat类 首先 Java.text.DecimalFormat指的是Decim ...