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]LeetCode741. 摘樱桃 | Cherry Pickup
In a N x N grid representing a field of cherries, each cell is one of three possible integers. 0 mea ...
- [Swift]LeetCode993. 二叉树的堂兄弟节点 | Cousins in Binary Tree
In a binary tree, the root node is at depth 0, and children of each depth k node are at depth k+1. T ...
- [Swift]LeetCode1013. 将数组分成和相等的三个部分 | Partition Array Into Three Parts With Equal Sum
Given an array A of integers, return true if and only if we can partition the array into three non-e ...
- linux入门--Linux系统的优缺点
1) 大量的可用软件及免费软件 Linux 系统上有着大量的可用软件,且绝大多数是免费的,比如声名赫赫的 Apache.Samba.PHP.MySQL 等,构建成本低廉,是 Linux 被众多企业青睐 ...
- 优化之Aggregator组件
Aggregator组件通常会降低性能,因为它们必须在处理数据之前对数据进行分组 Aggregator组件需要额外的内存来保存中间组结果 通过如下方式对Aggregator组件进行优化 简化group ...
- JS异步解析
同步和异步 举个
- [Abp 源码分析]八、缓存管理
0.简介 缓存在一个业务系统中十分重要,常用的场景就是用来储存调用频率较高的数据.Abp 也提供了一套缓存机制供用户使用,在使用 Abp 框架的时候可以通过注入 ICacheManager 来新建/设 ...
- BBS论坛(二十九)
29.帖子详情页布局 (1)front/hooks.py @bp.errorhandler def page_not_found(): return render_template('front/fr ...
- Vue生命周期详解
Vue所有的生命周期钩子自动绑定在this上下文到实例中,因此你可以访问数据,对属性和方法进行运算.这意味着你不能使用箭头函数来定义一个生命周期方法.这是因为箭头函数绑定了父上下文,因此this与你期 ...
- redis 系列27 Cluster高可用 (2)
一. ASK错误 集群上篇最后讲到,对于重新分片由redis-trib负责执行,关于该工具以后再介绍.在进行重新分片期间,源节点向目标节点迁移一个槽的过程中,可以会出现该槽中的一部分键值对保存在源节点 ...