etcd集群安装部署
1. 集群架构

由于我们只有两个机房,所以选择的是以上图中所示的数据同步方案, 通过做镜像的方式保证两个集群的数据实时同步。
整体架构如上图所示, 整个全局元数据中心包括两套集群,廊坊集群和马驹桥集群; 同时服务的只会有一个集群, 两个集群通过mirror-maker实时同步元数据,保证元数据无差别。
正常访问流程如下:
用户=》 OPS域名 =》 域名解析到廊坊 =》 通过负载均衡路由廊坊机房的4001端口 =》 访问数据返回
以上描述了一次正常的请求; 整体架构比较简单,主要是因为ETCD集群无法部署在三个机房(没有资源);所以选择了通过但机房部署,多机房数据同步的方案进行实时数据备份;
2. 灾备方案
(1). 通过mirror-maker实时做镜像的方式同步数据,如果出现主机房服务挂了可以通过切换域名的形式切换到灾备机房;这个过程中数据是可以保持一致的。
(2). etcd集群的数据每隔半个小时会备份一次数据, 备份的数据会直接上传到云存储上,一旦系统出现问题可以随时通过备份数据进行故障恢复;保证业务的可用性
3. 安装流程
a. 通过官网说明下载最新的ETCD程序
https://github.com/coreos/etcd/releases
可以参考以下脚本,下载并且解压
#!/bin/bash
ETCD_VER=v3.3.5
GITHUB_URL=https://github.com/coreos/etcd/releases/download
DOWNLOAD_URL=${GITHUB_URL}
rm -f /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
rm -rf /tmp/etcd-download-test && mkdir -p /tmp/etcd-download-test curl -L ${DOWNLOAD_URL}/${ETCD_VER}/etcd-${ETCD_VER}-linux-amd64.tar.gz -o /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
tar xzvf /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz -C /tmp/etcd-download-test --strip-components=
b. 校验版本
通过执行以下命令教研ETCD版本是否和是我们下载的版本
#校验etcd版本
$/tmp/etcd-download-test/etcd --version
etcd Version: 3.3.5
Git SHA: cb2a496
Go Version: go1.8.3
Go OS/Arch: linux/amd64 #校验etcdctl版本
$ETCDCTL_API= /tmp/etcd-download-test/etcdctl version
etcdctl version: 3.3.5
API version: 3.2
c. ETCD启动
通过以上步骤校验完版本之后就可以开始整理命令行参数启动etcd了;
这里我们直接使用ETCD配置文件配置相应的集群信息,ETCD配置文件如下:
vim /etc/etcd/etcd.conf
192.168.186.95 配置
ETCD_NAME=etcd95
ETCD_DATA_DIR="/export/Data/etcd/etcd95"
ETCD_STRICT_RECONFIG_CHECK=true
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.186.95:4001"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.186.95:7001"
ETCD_LISTEN_CLIENT_URLS="http://192.168.186.95:4001"
ETCD_LISTEN_PEER_URLS="http://192.168.186.95:7001"
ETCD_INITIAL_CLUSTER_STATE="new"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-global-cluster"
ETCD_INITIAL_CLUSTER="etcd95=http://192.168.186.95:7001,etcd53=http://192.168.186.53:7001,etcd73=http://192.168.186.73:7001"
192.168.186.53 配置
ETCD_NAME=etcd53
ETCD_DATA_DIR="/export/Data/etcd/etcd53"
ETCD_STRICT_RECONFIG_CHECK=true
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.186.53:4001"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.186.53:7001"
ETCD_LISTEN_CLIENT_URLS="http://192.168.186.53:4001"
ETCD_LISTEN_PEER_URLS="http://192.168.186.53:7001"
ETCD_INITIAL_CLUSTER_STATE="new"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-global-cluster"
ETCD_INITIAL_CLUSTER="etcd95=http://192.168.186.95:7001,etcd53=http://192.168.186.53:7001,etcd73=http://192.168.186.73:7001"
192.168.186.73 配置
ETCD_NAME=etcd73
ETCD_DATA_DIR="/export/Data/etcd/etcd73"
ETCD_STRICT_RECONFIG_CHECK=true
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.186.73:4001"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.186.73:7001"
ETCD_LISTEN_CLIENT_URLS="http://192.168.186.73:4001"
ETCD_LISTEN_PEER_URLS="http://192.168.186.73:7001"
ETCD_INITIAL_CLUSTER_STATE="new"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-global-cluster"
ETCD_INITIAL_CLUSTER="etcd95=http://192.168.186.95:7001,etcd53=http://192.168.186.53:7001,etcd73=http://192.168.186.73:7001"
d. 设置守护进程
配置每台机器的环境变量配置文件之后,需要设置守护进程;
vim /usr/lib/systemd/system/etcd.service
[Unit]
Description=etcd key-value store
Documentation=https://github.com/coreos/etcd
After=network.target
[Service]
User=etcd
Type=notify
#这个文件特别关键,etcd使用的环境变量都需要通过环境变量文件读取
EnvironmentFile=/etc/etcd/etcd.conf
ExecStart=/usr/bin/etcd --auto-compaction-retention '' --max-request-bytes '' --quota-backend-bytes ''
Restart=always
RestartSec=10s
LimitNOFILE=
[Install]
WantedBy=multi-user.target
e. 注意事项
一定需要确认数据目录对用户etcd有读写权限,否则服务可能无法正确启动
f. 启动
#启动前先创建软连接
ln -s /export/App/etcd-v3.2.2/etcd /usr/bin/etcd #执行以下命令启动etcd
systemctl daemon-reload
systemctl start etcd
systemctl enable etcd
g.状态校验
#启动完成之后需要进行状态校验
./etcdctl --endpoints="http://192.168.186.95:4001,http://192.168.186.53:4001,http://192.168.186.73:4001" member list
./etcdctl --endpoints="http://192.168.186.95:4001,http://192.168.186.53:4001,http://192.168.186.73:4001" cluster-health 返回信息如下:
4b68b919da5a093d: name=etcd95 peerURLs=http://192.168.186.95:7001 clientURLs=http://192.168.186.95:4001 isLeader=true
93fed96717b4821c: name=etcd53 peerURLs=http://192.168.186.53:7001 clientURLs=http://192.168.186.53:4001 isLeader=false
ed0bc855ed0b5faf: name=etcd73 peerURLs=http://192.168.186.73:7001 clientURLs=http://192.168.186.73:4001 isLeader=false member 4b68b919da5a093d is healthy: got healthy result from http://192.168.186.95:4001
member 93fed96717b4821c is healthy: got healthy result from http://192.168.186.53:4001
member ed0bc855ed0b5faf is healthy: got healthy result from http://192.168.186.73:4001
etcd集群安装部署的更多相关文章
- K8S集群安装部署
K8S集群安装部署 参考地址:https://www.cnblogs.com/xkops/p/6169034.html 1. 确保系统已经安装epel-release源 # yum -y inst ...
- HBase集群安装部署
0x01 软件环境 OS: CentOS6.5 x64 java: jdk1.8.0_111 hadoop: hadoop-2.5.2 hbase: hbase-0.98.24 0x02 集群概况 I ...
- flink部署操作-flink standalone集群安装部署
flink集群安装部署 standalone集群模式 必须依赖 必须的软件 JAVA_HOME配置 flink安装 配置flink 启动flink 添加Jobmanager/taskmanager 实 ...
- HBase 1.2.6 完全分布式集群安装部署详细过程
Apache HBase 是一个高可靠性.高性能.面向列.可伸缩的分布式存储系统,是NoSQL数据库,基于Google Bigtable思想的开源实现,可在廉价的PC Server上搭建大规模结构化存 ...
- 1.Hadoop集群安装部署
Hadoop集群安装部署 1.介绍 (1)架构模型 (2)使用工具 VMWARE cenos7 Xshell Xftp jdk-8u91-linux-x64.rpm hadoop-2.7.3.tar. ...
- 2 Hadoop集群安装部署准备
2 Hadoop集群安装部署准备 集群安装前需要考虑的几点硬件选型--CPU.内存.磁盘.网卡等--什么配置?需要多少? 网络规划--1 GB? 10 GB?--网络拓扑? 操作系统选型及基础环境-- ...
- 【分布式】Zookeeper伪集群安装部署
zookeeper:伪集群安装部署 只有一台linux主机,但却想要模拟搭建一套zookeeper集群的环境.可以使用伪集群模式来搭建.伪集群模式本质上就是在一个linux操作系统里面启动多个zook ...
- 第06讲:Flink 集群安装部署和 HA 配置
Flink系列文章 第01讲:Flink 的应用场景和架构模型 第02讲:Flink 入门程序 WordCount 和 SQL 实现 第03讲:Flink 的编程模型与其他框架比较 第04讲:Flin ...
- etcd简介及集群安装部署使用
目录 1. 简介 2. Linux下载安装 3. 单机模式启动 4. 指定各集群成员的方式配置集群 5. 使用discovery service的方式配置集群 6. 集群模式下客户端命令行 7. et ...
随机推荐
- 什么是SQL注入式攻击?
什么是SQL注入式攻击? 所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令.在某些表单中,用户输入的内容直接用来构造(或者影响 ...
- jquery遍历总结(转)
遍历 DOM jQuery 提供了多种遍历 DOM 的方法. 遍历方法中最大的种类是树遍历(tree-traversal). 下一章会讲解如何在 DOM 树中向上.下以及同级移动. 向上遍历 DOM ...
- IIS6.0应用程序池回收(转载)
这段时间公司的程序经常出现问题,然后整个应用程序就不能访问了,我们的服务器版本:window 2003 SP1,IIS6.0,没有安装Microsoft Visual Studio .NET . 问题 ...
- Mongodb更新数组$pull修饰符
http://blog.csdn.net/yaomingyang/article/details/78701643 一.$pull修饰符会删除掉数组中符合条件的元素,使用的格式是: { $pull: ...
- Jmeter常用操作
一,Jmeter-http 接口脚本添加cookie 实例:学生金币充值接口 该接口有权限验证,需要admin 用户才可以操作,需要添加cookie cookie 中key 为登录的用户名,valu ...
- 获取表单select域的选择部分的文本
body> <form action="index.php"> <select name="" id="select" ...
- tomcat能启动正常,但是输入localhost:8080不能登录
怎么配置JDK和TOMCAT应该百度经验已经很好地解释了. tomcat启动成功了,但是 localhost:8080 登录不成功. 有一种可能,缺少http:// 输入: http://loca ...
- VM克隆之后启动eth0找不到eth0:unknown interface:no such device
问题出现:VMware 克隆之后,ifconfig命令执行找不到eth0,报错 eth0:unknown interface:no such device 是因为/etc/sysconf/networ ...
- java模拟http请求上传文件,基于Apache的httpclient
1.依赖 模拟http端的请求需要依赖Apache的httpclient,需要第三方JSON支持,项目中添加 <dependency> <groupId>org.apache& ...
- 大数据处理-Trie树
大数据处理--Trie树 1.1.什么是Trie树 Trie树,即字典树,又称单词查找树或键树,是一种树形结构,是一种哈希树的变种.典型应用是用于统计和排序大量的字符串(但不仅限于字符串),所以经常被 ...