一 介绍

etcd 高可用一致性键值存储系统,使用Raft一直算法处理日志复制以保证数据一致性。主要在搭建kubernates时关注到etcd来研究部署etcd。使用golang语言编写,和zookeeper一样可用用于服务注册发现,以及配置管理等。github地址:https://github.com/coreos/etcd

二 单点部署

1. 使用 git,wget 下载源码

2. cd etcd-master

3. etcd 启动

4. 测试

使用 etcdctrl 测试

以上通过单点部署etcd 以及测试体验etcd作为键值存储所做的工作。

三 实现etcd集群的部署

1. 部署环境

为了方便部署过程只在通过IP指定无需修改host文件指定hostname。

只在一台机器搭建集群通过端口地址不同来区别。

      192.168.100.128:2381

      192.168.100.128:2382

      192.168.100.128:2383

  github 集群搭建地址:https://github.com/coreos/etcd/blob/master/Documentation/op-guide/clustering.md#etcd-discovery

2. 启动

node1:

        etcd --name infra0 --initial-advertise-peer-urls http://192.168.100.128:2381 \

  --listen-peer-urls http://192.168.100.128:2381 \
--listen-client-urls http://192.168.100.128:2279,http://127.0.0.1:2279 \
--advertise-client-urls http://192.168.100.128:2279 \
--initial-cluster-token etcd-cluster-1 \
--initial-cluster infra0=http://192.168.100.128:2381,infra1=http://192.168.100.128:2382,infra2=http://192.168.100.128:2383 \
--initial-cluster-state new

node2:

  etcd --name infra1 --initial-advertise-peer-urls http://192.168.100.128:2382 \

  --listen-peer-urls http://192.168.100.128:2382 \
--listen-client-urls http://192.168.100.128:2280,http://127.0.0.1:2280 \
--advertise-client-urls http://192.168.100.128:2280 \
--initial-cluster-token etcd-cluster-1 \
--initial-cluster infra0=http://192.168.100.128:2381,infra1=http://192.168.100.128:2382,infra2=http://192.168.100.128:2383 \
--initial-cluster-state new
node3:

  etcd --name infra2 --initial-advertise-peer-urls http://192.168.100.128:2383 \

  --listen-peer-urls http://192.168.100.128:2383 \
--listen-client-urls http://192.168.100.128:2281,http://127.0.0.1:2281 \
--advertise-client-urls http://192.168.100.128:2281 \
--initial-cluster-token etcd-cluster-1 \
--initial-cluster infra0=http://192.168.100.128:2381,infra1=http://192.168.100.128:2382,infra2=http://192.168.100.128:2383 \
--initial-cluster-state new
3 效果图



四 描述
另外文档还给出了TLS ca证书安装部署方式,以及自动自动证书安装 部署方式,以及使用DNS启动部署。
五 docker 环境 etcd 启动
在github中有Dockerfile文件可以构建镜像然后根据所需搭建etcd集群容器。
六 总结
etcd 和 zookeeper一样解决了数据一致性以及通过自动选举算法实现解决容灾问题,保证数据的高可用性以及强一致性。我们可以用etcd做服务注册发现以及配置管理等。当也可以当作key,vlue存储键值数据。
研究部署etcd主要是为了搭建kubernates服务,因为kubernates系统资源调度使用etcd做服务注册发现。

搭建etcd集群的更多相关文章

  1. Docker 搭建 etcd 集群

    阅读目录: 主机安装 集群搭建 API 操作 API 说明和 etcdctl 命令说明 etcd 是 CoreOS 团队发起的一个开源项目(Go 语言,其实很多这类项目都是 Go 语言实现的,只能说很 ...

  2. docker搭建etcd集群环境

    其实关于集群网上说的方案已经很多了,尤其是官网,只是这里我个人只有一个虚拟机,在开发环境下建议用docker-compose来搭建etcd集群. 1.拉取etcd镜像 docker pull quay ...

  3. 【转】centos7 搭建etcd集群

    转自http://www.cnblogs.com/zhenyuyaodidiao/p/6237019.html 一.简介 “A highly-available key value store for ...

  4. 二进制搭建kubernetes多master集群【一、使用TLS证书搭建etcd集群】

    上一篇我们介绍了kubernetes集群架构以及系统参数配置,参考:二进制搭建kubernetes多master集群[开篇.集群环境和功能介绍] 下面本文etcd集群才用三台centos7.5搭建完成 ...

  5. Docker 搭建 etcd 集群及管理

    环境 host1 10.1.99.13 host2 10.1.99.14 host3 10.1.99.15 host4 10.1.99.12(用于测试添加删除节点) 初始化集群 host1 $ doc ...

  6. Docker 搭建 etcd 集群配置

    #关闭selinux.防火墙 systemctl stop firewalld.service systemctl disable firewalld.service firewall-cmd --s ...

  7. 多主机搭建etcd集群

    下载https://github.com/etcd-io/etcd/releases/download/v3.4.10/etcd-v3.4.10-linux-amd64.tar.gz分别放到两台主机上 ...

  8. 基于已有集群动态发现方式部署 Etcd 集群

    etcd提供了多种部署集群的方式,在「通过静态发现方式部署etcd集群」 一文中我们介绍了如何通过静态发现方式部署集群. 不过很多时候,你只知道你要搭建一个多大(包含多少节点)的集群,但是并不能事先知 ...

  9. 基于 DNS 动态发现方式部署 Etcd 集群

    使用discovery的方式来搭建etcd集群方式有两种:etcd discovery和DNS discovery.在 「基于已有集群动态发现方式部署etcd集群」一文中讲解了etcd discove ...

随机推荐

  1. Apache Spark 2.0三种API的传说:RDD、DataFrame和Dataset

    Apache Spark吸引广大社区开发者的一个重要原因是:Apache Spark提供极其简单.易用的APIs,支持跨多种语言(比如:Scala.Java.Python和R)来操作大数据. 本文主要 ...

  2. python2和python3中range的区别

    参考自 python2和python3中的range区别 - CSDN博客 http://blog.csdn.net/xiexingshishu/article/details/48581379 py ...

  3. DOS命令安装配置Apache + MySQL + PHP 开发环境 (VC11)

    一.下载 1.下载Apache 下载地址:https://www.apachelounge.com/download/VC11/ 2.下载MySQL 下载地址:http://dev.mysql.com ...

  4. SQL Server 自定义函数(Function)——参数默认值

    sql server 自定义函数分为三种类型:标量函数(Scalar Function).内嵌表值函数(Inline Function).多声明表值函数(Multi-Statement Functio ...

  5. Spring自动装配Bean的五种方式

    在Spring中,支持 5 自动装配模式. no – 缺省情况下,自动配置是通过“ref”属性手动设定,在项目中最常用byName – 根据属性名称自动装配.如果一个bean的名称和其他bean属性的 ...

  6. SpringBoot入门学习(三)

    基于第二讲,这一讲我们主要讲解包含以下内容 springBoot添加对freemarker的支持 使用@RestController处理ajax请求 使用@PathVariable注解获取url参数 ...

  7. .NET Core + EF 报nuget包不兼容

    错误信息如下: 严重性 代码 说明 项目 文件 行 禁止显示状态错误 NU1107 Microsoft.EntityFrameworkCore 中检测到版本冲突.直接安装/引用 Microsoft.E ...

  8. Pentester中的XSS详解

    本次做的是Web For Pentester靶机里面的XSS题目,一共有9道题目. 关于靶机搭建参考这篇文章:渗透测试靶机的搭建 第1题(无过滤措施) 首先在后面输入xss: http://10.21 ...

  9. ElasticSearch(一)ElasticSearch的应用场景及为什么要选择ElasticSearch?

    先了解一下数据的分类 结构化数据又可以称之为行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据.其实就是可以能够用数据或者统一的结构加以表示的数据.比如在数据表存储商品的库存,可以用整型表示 ...

  10. OpenStack之Nova模块

    Nova简介 nova和swift是openstack最早的两个组件,nova分为控制节点和计算节点,计算节点通过nova computer进行虚拟机创建,通过libvirt调用kvm创建虚拟机,no ...