在Azure上建立DDC集群

  • 建立3台虚拟机作为UCP集群,3台虚拟机作为DTR集群.

  • 资源组:HYD-DockerDateCenter

    虚拟机size:DS3 4核14G

    系统:ubuntu14.04LTS

    Docker版本:17.03.0-ce

  • UCP集群:DDC-UCP-master1/2/3

  • DTR集群:DDC-DTR-node1/2/3

安装Docker环境

apt-get update
使用aufs storage drivers
apt-get install \
linux-image-extra-$(uname -r) \
linux-image-extra-virtual
安装软件包允许通过https使用存储库
apt-get install \
apt-transport-https \
ca-certificates \
curl \
software-properties-common
添加Docker的官方GPG密钥
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
建立资源库
add-apt-repository \
"deb [arch=amd64] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) \
stable"
安装docker deamon
apt-get install docker-ce
因为国内被墙的厉害,所以我使用.deb的安装包,安装docker.
[地址](https://download.docker.com/linux/ubuntu/dists/trusty/pool/stable/amd64/docker-ce_17.03.0~ce-0~ubuntu-trusty_amd64.deb)

安装UCP

  • 为了符合上线环境要求,使用内网

      docker run --rm -it --name ucp \
    -v /var/run/docker.sock:/var/run/docker.sock \
    docker/ucp:2.1.1 install \
    --host-address 10.1.2.4 \
    --interactive
  1. 在镜像pull完以后,需要输入ucp的用户和密码.
  2. 在进入UI界面时,需要证书,国内邮箱可申请.为时30天试用期

    Docker Store订阅获取证书

添加node管理节点

  为了让Docker群集和UCP容错和高可用性,加入节点。管理节点是群集中执行业务流程和群组管理任务的节点,并为工作节点分派任务执行.

  1. 勾选第一条作为ucp集群manager,dtr的node不需要勾选.

添加DTR

在dtr node中使用命令

docker run -it --rm docker/dtr install \
--dtr-external-url https://10.1.2.5 \
--ucp-node DDC-DTR-node1 \
--ucp-username hydsoft \
--ucp-insecure-tls \
--ucp-url https://10.1.2.4

添加DTR副本

保证在第一个dtr挂掉以后数据不会丢失,业务继续.

docker run -it --rm docker/dtr join \
--dtr-external-url https://10.1.2.7 \
--ucp-node DDC-DTR-node2 \
--ucp-username hydsoft \
--ucp-insecure-tls \
--ucp-url https://10.1.2.4

DTR备份

  1. 在Azure上创建一个存储账户,并创建一个容器为备份容器.
  2. 在DTR界面中选择setting->storage.

OPENVPN

  • 因为dtr使用内网添加,访问dtr界面时使用外网地址是无法访问的,所以使用vpn.这样在访问UCP和DTR时,都可以使用https://内网IP.
  1. 在资源组中创建一个有公网ip和子网ip的虚拟机.我命名为DDC-access
  2. 配置好docker环境.

搭建ovpn

  1. 创建需要挂载的目录

     OVPN_DATA="/root/ovpn-data"
    mkdir ${OVPN_DATA}
  2. 建立easyrsa PKI证书存储

     docker run -v ${OVPN_DATA}:/etc/openvpn --rm  kylemanna/openvpn ovpn_genconfig -u tcp://DDC-access的公网IP
  3. 生成EasyRSA PKI 证书授权中心 会让你输入CA私有密钥的密码,自己设定.

     docker run -v ${OVPN_DATA}:/etc/openvpn --rm -it kylemanna/openvpn ovpn_initpki
  4. 生成客户端证书和配置文件

     创建客户端证书(会提示你生成客户端登录密码和输入ca私有秘钥的密码)
    docker run -v ${OVPN_DATA}:/etc/openvpn --rm -it kylemanna/openvpn easyrsa build-client-full yangchen
    通过容器内部脚本生成配置文件
    docker run -v ${OVPN_DATA}:/etc/openvpn --rm kylemanna/openvpn ovpn_getclient yangchen > ${OVPN_DATA}/yangchen.ovpn
  5. 将服务容器启动

     docker run --name openvpn -v ${OVPN_DATA}:/etc/openvpn -d -p 1194:1194 --privileged kylemanna/openvpn

注意: 因为Azure的虚拟机,默认只有开启22端口进行ssh连接.所以在UCP创建过程中,如果出现报错,提示很多端口没有开启,就需要手动去网络添加入站规则.

Opnvpn的容器映射1194端口,需要网络安全组手动开启.

在azure中建立DDC集群的更多相关文章

  1. Window Server 2019 配置篇(3)- 建立hyper-v集群并在其上运行win10 pro虚拟机

    上次讲到我们的域里有了网关跟DHCP,这次我们要在域中建立hyper-v集群并在其上运行win10 pro虚拟机 那么什么是hyper-v集群呢? 就是两个及两个以上的运行hyper-v服务的服务器建 ...

  2. 项目中使用Quartz集群分享--转载

    项目中使用Quartz集群分享--转载 在公司分享了Quartz,发布出来,希望大家讨论补充. CRM使用Quartz集群分享  一:CRM对定时任务的依赖与问题  二:什么是quartz,如何使用, ...

  3. Azure上搭建ActiveMQ集群-基于ZooKeeper配置ActiveMQ高可用性集群

    ActiveMQ从5.9.0版本开始,集群实现方式取消了传统的Master-Slave方式,增加了基于ZooKeeper+LevelDB的实现方式. 本文主要介绍了在Windows环境下配置基于Zoo ...

  4. Redis 中常见的集群部署方案

    Redis 的高可用集群 前言 几种常用的集群方案 主从集群模式 全量同步 增量同步 哨兵机制 什么是哨兵机制 如何保证选主的准确性 如何选主 选举主节点的规则 哨兵进行主节点切换 切片集群 Redi ...

  5. (4) Spring中定时任务Quartz集群配置学习

    原 来配置的Quartz是通过spring配置文件生效的,发现在非集群式的服务器上运行良好,但是将工程部署到水平集群服务器上去后改定时功能不能正常运 行,没有任何错误日志,于是从jar包.JDK版本. ...

  6. 在 Minecraft 中管理 Kubernetes 集群

    原文链接:在 Minecraft 中管理 Kubernetes 集群 微软 2015 年收购 Minecraft 之后不久开源了一个项目叫 Dockercraft,这个项目当时看起来非常有趣,通过 D ...

  7. 在 Kubernetes 中部署 Redis 集群

    在 Kubernetes 中部署 Redis 集群 在Kubernetes中部署Redis集群面临挑战,因为每个 Redis 实例都依赖于一个配置文件,该文件可以跟踪其他集群实例及其角色.为此,我们需 ...

  8. 搭建docker私有仓库,建立k8s集群

    服务器IP角色分布 192.168.5.2 etcd server 192.168.5.2 kubernetes master 192.168.5.3 kubernetes node 192.168. ...

  9. 使用 Docker 建立 Mysql 集群

    软件环境介绍操作系统:Ubuntu server 64bit 14.04.1Docker 版本 1.6.2数据库:Mariadb 10.10 (Mariadb 是 MySQL 之父在 MySQL 被 ...

随机推荐

  1. ASP.NET Core 网站发布到Linux服务器(转)

    出处;ASP.NET Core 网站发布到Linux服务器 长期以来,使用.NET开发的应用只能运行在Windows平台上面,而目前国内蓬勃发展的互联网公司由于成本的考虑,大量使用免费的Linux平台 ...

  2. 第一篇bolg

    仅以此篇谨记自己,以后加油

  3. 【转】缓存淘汰算法系列之2——LFU类

    原文地址 :http://www.360doc.com/content/13/0805/16/13247663_304916783.shtml 1. LFU类 1.1. LFU 1.1.1. 原理 L ...

  4. 关于EF Code First模式不同建模方式对建表产生的影响

    今天在学EF Code First模式的时候,发现几个很有趣的问题,问题如下: 1.当编写玩实体后,不指定任何主键约束,EF会找长的最像Id的,然后设置其为主键,验证代码如下: //User类 cla ...

  5. Windows下MongoDB常用命令

    以下命令中的启动与暂停服务命令需要使用管理员身份运行cmd.exe,其他命令需要先cd到Mongodb安装目录的bin目录. 1.启动服务:net start [Mongodb服务名].示例: net ...

  6. [hihoCoder]矩形判断

    #1040 : 矩形判断 时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 给出平面上4条线段,判断这4条线段是否恰好围成一个面积大于0的矩形. 输入 输入第一行是一个整数T ...

  7. JPA之helloWorld

    在 Eclipse 下创建 JPA 工程 1.在eclipse上安装JPA插件(网上自行百度) 2.new 一个Jpa工程 3:点击下一步,下一步,第一次运行jpa插件会让我们装相关类库如下图,等到再 ...

  8. CoreCLR源码探索(八) JIT的工作原理(详解篇)

    在上一篇我们对CoreCLR中的JIT有了一个基础的了解, 这一篇我们将更详细分析JIT的实现. JIT的实现代码主要在https://github.com/dotnet/coreclr/tree/m ...

  9. Mysql 用户,权限管理的几点理解。

    前两天项目数据库要移植到mysql,为此临时抓了几天很久没用的mysql. 公司的数据库比较简单,从oracle迁移到mysql很简单,但是,中间的权限管理让我感觉既简单又复杂..简单是因为网上关于m ...

  10. common lisp和scheme的区别

    1. 在Common Lisp 眼中,一个符号的symbol-value 和symbol-function 是不一样的,而Scheme对两者不作区分.在Scheme 里面,变量只有唯一对应的值,它可以 ...