在azure中建立DDC集群
在Azure上建立DDC集群
建立3台虚拟机作为UCP集群,3台虚拟机作为DTR集群.
资源组:HYD-DockerDateCenter
虚拟机size:DS3 4核14G
系统:ubuntu14.04LTS
Docker版本:17.03.0-ceUCP集群: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
- 在镜像pull完以后,需要输入ucp的用户和密码.
- 在进入UI界面时,需要证书,国内邮箱可申请.为时30天试用期
Docker Store订阅获取证书

添加node管理节点
为了让Docker群集和UCP容错和高可用性,加入节点。管理节点是群集中执行业务流程和群组管理任务的节点,并为工作节点分派任务执行.
- 勾选第一条作为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备份
- 在Azure上创建一个存储账户,并创建一个容器为备份容器.
- 在DTR界面中选择setting->storage.

OPENVPN
- 因为dtr使用内网添加,访问dtr界面时使用外网地址是无法访问的,所以使用vpn.这样在访问UCP和DTR时,都可以使用https://内网IP.
- 在资源组中创建一个有公网ip和子网ip的虚拟机.我命名为DDC-access
- 配置好docker环境.
搭建ovpn
创建需要挂载的目录
OVPN_DATA="/root/ovpn-data"
mkdir ${OVPN_DATA}
建立easyrsa PKI证书存储
docker run -v ${OVPN_DATA}:/etc/openvpn --rm kylemanna/openvpn ovpn_genconfig -u tcp://DDC-access的公网IP
生成EasyRSA PKI 证书授权中心 会让你输入CA私有密钥的密码,自己设定.
docker run -v ${OVPN_DATA}:/etc/openvpn --rm -it kylemanna/openvpn ovpn_initpki
生成客户端证书和配置文件
创建客户端证书(会提示你生成客户端登录密码和输入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
将服务容器启动
docker run --name openvpn -v ${OVPN_DATA}:/etc/openvpn -d -p 1194:1194 --privileged kylemanna/openvpn
注意: 因为Azure的虚拟机,默认只有开启22端口进行ssh连接.所以在UCP创建过程中,如果出现报错,提示很多端口没有开启,就需要手动去网络添加入站规则.
Opnvpn的容器映射1194端口,需要网络安全组手动开启.
在azure中建立DDC集群的更多相关文章
- Window Server 2019 配置篇(3)- 建立hyper-v集群并在其上运行win10 pro虚拟机
上次讲到我们的域里有了网关跟DHCP,这次我们要在域中建立hyper-v集群并在其上运行win10 pro虚拟机 那么什么是hyper-v集群呢? 就是两个及两个以上的运行hyper-v服务的服务器建 ...
- 项目中使用Quartz集群分享--转载
项目中使用Quartz集群分享--转载 在公司分享了Quartz,发布出来,希望大家讨论补充. CRM使用Quartz集群分享 一:CRM对定时任务的依赖与问题 二:什么是quartz,如何使用, ...
- Azure上搭建ActiveMQ集群-基于ZooKeeper配置ActiveMQ高可用性集群
ActiveMQ从5.9.0版本开始,集群实现方式取消了传统的Master-Slave方式,增加了基于ZooKeeper+LevelDB的实现方式. 本文主要介绍了在Windows环境下配置基于Zoo ...
- Redis 中常见的集群部署方案
Redis 的高可用集群 前言 几种常用的集群方案 主从集群模式 全量同步 增量同步 哨兵机制 什么是哨兵机制 如何保证选主的准确性 如何选主 选举主节点的规则 哨兵进行主节点切换 切片集群 Redi ...
- (4) Spring中定时任务Quartz集群配置学习
原 来配置的Quartz是通过spring配置文件生效的,发现在非集群式的服务器上运行良好,但是将工程部署到水平集群服务器上去后改定时功能不能正常运 行,没有任何错误日志,于是从jar包.JDK版本. ...
- 在 Minecraft 中管理 Kubernetes 集群
原文链接:在 Minecraft 中管理 Kubernetes 集群 微软 2015 年收购 Minecraft 之后不久开源了一个项目叫 Dockercraft,这个项目当时看起来非常有趣,通过 D ...
- 在 Kubernetes 中部署 Redis 集群
在 Kubernetes 中部署 Redis 集群 在Kubernetes中部署Redis集群面临挑战,因为每个 Redis 实例都依赖于一个配置文件,该文件可以跟踪其他集群实例及其角色.为此,我们需 ...
- 搭建docker私有仓库,建立k8s集群
服务器IP角色分布 192.168.5.2 etcd server 192.168.5.2 kubernetes master 192.168.5.3 kubernetes node 192.168. ...
- 使用 Docker 建立 Mysql 集群
软件环境介绍操作系统:Ubuntu server 64bit 14.04.1Docker 版本 1.6.2数据库:Mariadb 10.10 (Mariadb 是 MySQL 之父在 MySQL 被 ...
随机推荐
- IDEA搭建SpringMVC+Mybatis+Mysql+Maven框架
相关环境 Intellij IDEA Ultimate Tomcat JDK MySql 5.6(win32/win64) Maven (可使用Intellij IDEA自带的) 搭建步骤 创建项目工 ...
- 对ajax请求的简单封装,操作更方便
我这里的接口数据调用的js叫interface.js,接口路径管理的js叫webSiteControl.js /** * Created by l2776 on 2017/7/11. * 接口数据调用 ...
- 重写equals和hashCode
equals()方法 1. 自反性:A.equals(A)要返回true. 2. 对称性:如果A.equals(B)返回true, 则B.equals(A)也要返回true. 3. 传递性:如果A.e ...
- module、export、require、import的使用
module 每个文件就是一个模块.文件内定义的变量.函数等等都是在自己的作用域内,都是自身所私有的,对其它文件不可见. 每个文件内部都有一个module对象,它包含以下属性 id: 模块的识别符,通 ...
- 读书笔记-你不知道的JS上-词法作用域
JS引擎 编译与执行 Javascript引擎会在词法分析和代码生成阶段对运行性能进行优化,包含对冗余元素进行优化(例如对语句在不影响结果的情况下进行重新组合). 对于Javascript来说,大部分 ...
- ES6新特性之Symbol使用细节
在迭代器章节的时候出现过[Symbol.iterator ]的属性,那么到底Symbo到底是什么? 答:Symbol是ES6新定义的一种值,它既不是字符串,也不是对象,而是为javaScript增加的 ...
- 关于在 IntellIj IDEA中JSP页面 cannot resolve method getParameter("")的解决方案
File->Project Structure->Libraries,然后点加号,将Tomcat lib文件夹下的servlet.jar和servlet-api.jar包导入.
- 哈尔滨理工大学第六届程序设计团队 I-Team
/* 以前做过一个插队的题,这个类似从后往前操作 */ #include <iostream> #include <stdio.h> #include <algorith ...
- 【DG】利用闪回数据库(flashback)修复Failover后的DG环境
利用闪回数据库(flashback)修复Failover后的DG环境 1.1 BLOG文档结构图 1.2 前言部分 1.2.1 导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能, ...
- 逆向课程第二讲,寻找main入口点
逆向课程第二讲,寻找main入口点 一丶识别各个程序的入口点 入门知识,识别各个应用程序的入口点 (举例识别VC 编译器生成,以及VS编译生成的Debug版本以及Release版本) 1.识别VC6. ...