(通俗易懂~)基于Docker的Etcd集群环境搭建
闲言碎语
最近在埋头苦学Docker相关知识,深深被Docker技术所吸引,Docker牛逼,我爱Docker!也是好久没写博客了,在学习Docker的过程中,今天算是个小小的里程碑吧,特此纪念。废话不多说下面进入正文!
Etcd简介
Etcd是CoreOS团队于2013年6月发起的开源项目,它的目标是构建一个高可用的分布式键值(KEY-VALUE)仓库,遵循Apache v2许可,基于Go语言实现。主要用于分享配置和服务发现。etcd 的灵感来自于 ZooKeeper 和 Doozer,除了拥有与之类似的功能外,更加注重以下几个方面:
- 简单:支持 curl 方式的用户 API (HTTP+JSON)
- 安全:可选 SSL 客户端证书认证
- 快速:单实例可达每秒 10000 次写操作
- 可靠:使用 Raft 实现分布式
准备环境
构建思路如下:
节点名 | IP地址 |
---|---|
node1 | 10.2.36.1 |
node2 | 10.2.36.2 |
node3 | 10.2.36.3 |
我们需要三个节点,这三个节点可以分布在不同服务器,本案例中,以一台服务器基于Docker运行多个容器来做演示。
第一步,下载Etc镜像
下载Etcd镜像
$docker pull quay.io/coreos/etcd:v3.3.1
$docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
quay.io/coreos/etcd v3.3.1 d56a5594a28c 2 years ago 39.4MB
第二步,创建自定义Docker网络
首先构建个自定义网络,因为我们要给各个节点分配IP地址,Docker容器默认网络只能自动配IP无法手动分配。
##创建一个新的bridge网络
$docker network create --driver bridge --subnet=10.2.36.0/16 --gateway=10.2.1.1 mynet2
##查看网络列表