目录

集群

优质
小牛编辑
143浏览
2023-12-01

etcd 集群

下面我们使用 Docker Compose 模拟启动一个 3 节点的 etcd 集群。

编辑 docker-compose.yml 文件

version: "3.6"services:  node1:    image: quay.io/coreos/etcd:v3.4.0    volumes:      - node1-data:/etcd-data    expose:      - 2379      - 2380    networks:      cluster_net:        ipv4_address: 172.16.238.100    environment:      - ETCDCTL_API=3    command:      - /usr/local/bin/etcd      - --data-dir=/etcd-data      - --name      - node1      - --initial-advertise-peer-urls      - http://172.16.238.100:2380      - --listen-peer-urls      - http://0.0.0.0:2380      - --advertise-client-urls      - http://172.16.238.100:2379      - --listen-client-urls      - http://0.0.0.0:2379      - --initial-cluster      - node1=http://172.16.238.100:2380,node2=http://172.16.238.101:2380,node3=http://172.16.238.102:2380      - --initial-cluster-state      - new      - --initial-cluster-token      - docker-etcd  node2:    image: quay.io/coreos/etcd:v3.4.0    volumes:      - node2-data:/etcd-data    networks:      cluster_net:        ipv4_address: 172.16.238.101    environment:      - ETCDCTL_API=3    expose:      - 2379      - 2380    command:      - /usr/local/bin/etcd      - --data-dir=/etcd-data      - --name      - node2      - --initial-advertise-peer-urls      - http://172.16.238.101:2380      - --listen-peer-urls      - http://0.0.0.0:2380      - --advertise-client-urls      - http://172.16.238.101:2379      - --listen-client-urls      - http://0.0.0.0:2379      - --initial-cluster      - node1=http://172.16.238.100:2380,node2=http://172.16.238.101:2380,node3=http://172.16.238.102:2380      - --initial-cluster-state      - new      - --initial-cluster-token      - docker-etcd  node3:    image: quay.io/coreos/etcd:v3.4.0    volumes:      - node3-data:/etcd-data    networks:      cluster_net:        ipv4_address: 172.16.238.102    environment:      - ETCDCTL_API=3    expose:      - 2379      - 2380    command:      - /usr/local/bin/etcd      - --data-dir=/etcd-data      - --name      - node3      - --initial-advertise-peer-urls      - http://172.16.238.102:2380      - --listen-peer-urls      - http://0.0.0.0:2380      - --advertise-client-urls      - http://172.16.238.102:2379      - --listen-client-urls      - http://0.0.0.0:2379      - --initial-cluster      - node1=http://172.16.238.100:2380,node2=http://172.16.238.101:2380,node3=http://172.16.238.102:2380      - --initial-cluster-state      - new      - --initial-cluster-token      - docker-etcdvolumes:  node1-data:  node2-data:  node3-data:networks:  cluster_net:    driver: bridge    ipam:      driver: default      config:      -        subnet: 172.16.238.0/24

使用 docker-compose up 启动集群之后使用 docker exec 命令登录到任一节点测试 etcd 集群。

/ # etcdctl member listdaf3fd52e3583ff, started, node3, http://172.16.238.102:2380, http://172.16.238.102:2379422a74f03b622fef, started, node1, http://172.16.238.100:2380, http://172.16.238.100:2379ed635d2a2dbef43d, started, node2, http://172.16.238.101:2380, http://172.16.238.101:2379