本系列文章演示如何搭建一个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
代码语言:txt复制$ yum install firewalld
b, 开启防火墙
代码语言:txt复制$ systemctl start firewalld.service
c, 查看端口是否开放
代码语言:txt复制$ firewall-cmd --zone=public --query-port=443/tcp
d, 开放端口
代码语言:txt复制$ firewall-cmd --zone=public --add-port=443/tcp --permanent firewall-cmd --reload
e, 重载策略
代码语言:txt复制$ 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, 运行如下命令:
代码语言:txt复制# 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
代码语言:txt复制$ 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
代码语言:txt复制$ docker container run -it --rm --name ucp -v /var/run/docker.sock:/var/run/docker.sock docker/ucp:3.0.2 restart
c, 卸载UCP
代码语言:txt复制$ 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安全认证