本系列文章演示如何搭建一个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. Python数据写入csv格式文件

    (只是传递,基础知识也是根基) Python读取数据,并存入Excel打开的CSV格式文件内! 这里需要用到bs4,csv,codecs,os模块. 废话不多说,直接写代码!该重要的内容都已经注释了, ...

  2. 优化之Normalizer组件

    Normalizer会产生记录,尽可能的将Normalizer组件靠近Target ---------------------------------------------------------- ...

  3. 手把手的教你激活PyCharm --Pycharm激活详细教程(二)(非常详细,非常实用)

    简介 Pycharm安装以后必须激活后,才能正常的使用.否则就不能使用. 激活PyCharm 1.Activation code激活 优点:Window.Mac.Ubantu都稳定有效,关键是这种激活 ...

  4. 使用mpvue开发小程序教程(二)

    在上篇文章中,我们介绍了使用mpvue开发小程序所需要的一些开发环境的搭建,并创建了第一个mpvue小程序代码骨架并将其运行起来.在本文中,我们来研究熟悉一下mpvue项目的主要目录和文件结构. 在V ...

  5. 简单的SQL注入之2

    Topic Link http://ctf5.shiyanbar.com/web/index_2.php 一.方法One sqlmap直接跑出来 1)暴库 2)爆表 3)爆段 4) 结果 二.方法Tw ...

  6. 分析core,是从案发现场,推导案发经过

    分析core不是一件容易的事情.试想,一个系统运行了很长一段时间,在这段时间里,系统会积累大量正常.甚至不正常的状态.这个时候如果系统突然出现了一个问题,那这个问题十有八九跟长时间积累下来的状态有关系 ...

  7. 3分钟学会如何调度运营海量Redis系统

    本文由云+社区发表 作者:冯伟源 作者:冯伟源,高级工程师,腾讯云Redis系统运维负责人.6年DBA经验,一直从事SQL优化.实例调优.数据库架构.海量数据库集群运维.运营平台建设和管理等工作.为 ...

  8. 滚动 docker 中的 nginx 日志

    Nginx 自己没有处理日志的滚动问题,它把这个球踢给了使用者.一般情况下,你可以使用 logrotate 工具来完成这个任务,或者如果你愿意,你可以写各式各样的脚本完成同样的任务.本文笔者介绍如何滚 ...

  9. [一]FileDescriptor文件描述符 标准输入输出错误 文件描述符

    文件描述符   当应用程序请求打开或者操作文件时,操作系统为应用程序设置一张文件列表,具体的实现形式此处不深入说明 操作系统会提供给你一个非负整数,作为一个索引号,它的作用就像地址或者说指针或者说偏移 ...

  10. 流式大数据计算实践(7)----Hive安装

    一.前言 1.这一文学习使用Hive 二.Hive介绍与安装 Hive介绍:Hive是基于Hadoop的一个数据仓库工具,可以通过HQL语句(类似SQL)来操作HDFS上面的数据,其原理就是将用户写的 ...