zoukankan      html  css  js  c++  java
  • Docker下ETCD集群搭建

    搭建集群之前首先准备两台安装了CentOS 7的主机,并在其上安装好Docker。

    Master 10.100.97.46
    Node 10.100.97.64
    ETCD集群搭建有三种方式,分别是Static(静态方式),Discovery(服务发现方式),DNS discovery (DNS发现),官方文档https://coreos.com/etcd/docs/latest/op-guide/clustering.html。
    比较三种方式,Static方式最方便简单。我们在这里使用添加主机的方式搭建集群,先假装Master机器不知道Node机器的存在,然后再把Node节点添加进来。

    1. 首先获取ETCD镜像,两台主机都有(以下简称two)。

    该镜像的版本信息:https://hub.docker.com/r/eagle6688/etcd/

    docker pull eagle6688/etcd

    2. 开放ETCD通信使用的接口,two:

    sudo firewall-cmd --zone=public --add-port=2379/tcp --permanent
    sudo firewall-cmd --zone=public --add-port=2380/tcp --permanent
    sudo firewall-cmd --reload
    sudo firewall-cmd --list-ports

    最后那行代码显示已经打开的所有端口。

    3. 创建数据挂载目录,two:

    sudo mkdir -p  /var/data/etcd

    4. 在Master机执行:

    docker run 
      -it 
      -p 2379:2379 
      -p 2380:2380 
      -v /var/data/etcd:/data 
      --name etcd-master 
      eagle6688/etcd 
      --name etcd-master 
      --data-dir /data 
      --listen-peer-urls http://0.0.0.0:2380 
      --listen-client-urls http://0.0.0.0:2379 
      --initial-advertise-peer-urls http://10.100.97.46:2380 
      --initial-cluster etcd-master=http://10.100.97.46:2380 
      --initial-cluster-state new 
      --initial-cluster-token eagle-cluster 
      --advertise-client-urls http://10.100.97.46:2379

    注意,第8行我们给etcd节点起的名字要跟13行的name相同,配置node节点时类似。此外,这里的配置仅仅跟master节点自身有关,此时它还不知道有node的存在。

    5. 测试master节点:

    分别在master节点和node节点执行下面的语句以测试master节点的有效性:

    curl http://10.100.97.46:2379/v2/members

    该语句应该返回包含master节点信息的json字符串。

    6. 添加node节点

    在node机调用master的api添加自己

    curl http://10.100.97.46:2379/v2/members -XPOST -H "Content-Type: application/json" -d '{"peerURLs":["http://10.100.97.64:2380"]}'

    此时,master节点会暂停下来等待node节点的加入。

    7. 启动node节点上的etcd

    docker run 
      -it 
      -p 2379:2379 
      -p 2380:2380 
      -v /var/data/etcd:/data 
      --name etcd-G510 
      eagle6688/etcd 
      --name etcd-node 
      --data-dir /data 
      --listen-peer-urls http://0.0.0.0:2380 
      --listen-client-urls http://0.0.0.0:2379 
      --initial-advertise-peer-urls http://10.100.97.64:2380 
      --initial-cluster etcd-master=http://10.100.97.46:2380,etcd-node=http://10.100.97.64:2380 
      --initial-cluster-state existing 
      --initial-cluster-token eagle-cluster 
      --advertise-client-urls http://10.100.97.64:2379

    注意,initial-cluster要包含所有节点,initial-cluster-state必须是existing。

  • 相关阅读:
    golang语法要点笔记
    环境配置
    实现chrome多用户独立cookie
    Golang遇到的问题记录
    php preg_replace去除html xml 注释
    C 基础
    多种写法
    mysql 查看当前数据库
    sql group by
    sql CONCAT()
  • 原文地址:https://www.cnblogs.com/eagle6688/p/8287907.html
Copyright © 2011-2022 走看看