etcd教程(一)---通过docker安装etcd集群

来自:指月 https://www.lixueduan.com

原文:https://www.lixueduan.com/post/etcd/01-install/

本文主要记录了如何通过docker-compose来搭建etcd,包括单节点和集群模式及其web监控


如果你对云原生技术充满好奇,想要深入了解更多相关的文章和资讯,欢迎关注微信公众号。

扫描下方二维码或搜索公众号【探索云原生】即可订阅


1. 单节点

1. 目录结构

/usr/local/docker/etcd
					--/data
					--docker-compose.yml

2. docker-compose.yml

version: '3'
networks:
  myetcd_single:
services:
  etcd:
    image: quay.io/coreos/etcd
    container_name: etcd_single
    command: etcd -name etcd1 -advertise-client-urls http://0.0.0.0:2379 -listen-client-urls http://0.0.0.0:2379 -listen-peer-urls http://0.0.0.0:2380
    ports:
      - 12379:2379
      - 12380:2380
    volumes:
      - ./data:/etcd-data
    networks:
      - myetcd_single
  etcdkeeper:
    image: deltaprojects/etcdkeeper
    container_name: etcdkeeper_single
    ports:
      - 8088:8080
    networks:
      - myetcd_single
      

3. 相关参数

参数作用
name节点名称
data-dir指定节点的数据存储目录
listen-client-urls对外提供服务的地址:比如 http://ip:2379,http://127.0.0.1:2379 ,客户端会连接到这里和 etcd 交互
listen-peer-urls监听URL,用于与其他节点通讯
advertise-client-urls对外公告的该节点客户端监听地址,这个值会告诉集群中其他节点
initial-advertise-peer-urls该节点同伴监听地址,这个值会告诉集群中其他节点
initial-cluster集群中所有节点的信息,格式为 node1=http://ip1:2380,node2=http://ip2:2380,… 。注意:这里的 node1 是节点的 --name 指定的名字;后面的 ip1:2380 是 --initial-advertise-peer-urls 指定的值
initial-cluster-state新建集群的时候,这个值为 new ;假如已经存在的集群,这个值为 existing
initial-cluster-token创建集群的 token,这个值每个集群保持唯一。这样的话,如果你要重新创建集群,即使配置和之前一样,也会再次生成新的集群和节点 uuid;否则会导致多个集群之间的冲突,造成未知的错误

4. 启动

docker-compose up
#后台启动增加`-d`参数
docker-compose up -d

2. 伪集群

1. 目录结构

/usr/local/docker/etcd
					--/data
						--/etcd1
						--/etcd2
						--/etcd3
					--docker-compose.yml

2. docker-compose.yml

version: '3'
networks:
  myetcd:

services:
  etcd1:
    image: quay.io/coreos/etcd
    container_name: etcd1
    command: etcd -name etcd1 -advertise-client-urls http://0.0.0.0:2379 -listen-client-urls http://0.0.0.0:2379 -listen-peer-urls http://0.0.0.0:2380 -initial-cluster-token etcd-cluster -initial-cluster "etcd1=http://etcd1:2380,etcd2=http://etcd2:2380,etcd3=http://etcd3:2380" -initial-cluster-state new
    ports:
      - 12379:2379
      - 12380:2380
    volumes:
      - ./data/etcd1:/etcd-data
    networks:
      - myetcd
 
  etcd2:
    image: quay.io/coreos/etcd
    container_name: etcd2
    command: etcd -name etcd2 -advertise-client-urls http://0.0.0.0:2379 -listen-client-urls http://0.0.0.0:2379 -listen-peer-urls http://0.0.0.0:2380 -initial-cluster-token etcd-cluster -initial-cluster "etcd1=http://etcd1:2380,etcd2=http://etcd2:2380,etcd3=http://etcd3:2380" -initial-cluster-state new
    ports:
      - 22379:2379
      - 22380:2380
    volumes:
      - ./data/etcd2:/etcd-data
    networks:
      - myetcd
  
  etcd3:
    image: quay.io/coreos/etcd
    container_name: etcd3
    command: etcd -name etcd3 -advertise-client-urls http://0.0.0.0:2379 -listen-client-urls http://0.0.0.0:2379 -listen-peer-urls http://0.0.0.0:2380 -initial-cluster-token etcd-cluster -initial-cluster "etcd1=http://etcd1:2380,etcd2=http://etcd2:2380,etcd3=http://etcd3:2380" -initial-cluster-state new
    ports:
      - 32379:2379
      - 32380:2380
    volumes:
      - ./data/etcd3:/etcd-data
    networks:
      - myetcd
      
  etcdkeeper:
    image: deltaprojects/etcdkeeper
    container_name: etcdkeeper
    ports:
      - 8088:8080
    networks:
      - myetcd
      

3. 启动

docker-compose up
#后台启动增加`-d`参数
docker-compose up -d

4. 查看集群信息

[root@localhost etcd3]# curl -L http://127.0.0.1:32379/v2/members

{"members":[{"id":"ade526d28b1f92f7","name":"etcd1","peerURLs":["http://etcd1:2380"],"clientURLs":["http://0.0.0.0:2379"]},{"id":"bd388e7810915853","name":"etcd3","peerURLs":["http://etcd3:2380"],"clientURLs":["http://0.0.0.0:2379"]},{"id":"d282ac2ce600c1ce","name":"etcd2","peerURLs":["http://etcd2:2380"],"clientURLs":["http://0.0.0.0:2379"]}]}

3. web监控

启动etcd的同时也会启动web监控etcdkeeper

访问路径

localhost:8088

etcdKeeper访问etcd好像是通过外网访问的(也可能是我配置问题)

如果是线上服务器的话需要配置一下安全组才能访问


如果你对云原生技术充满好奇,想要深入了解更多相关的文章和资讯,欢迎关注微信公众号。

扫描下方二维码或搜索公众号【探索云原生】即可订阅


  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值