zoukankan      html  css  js  c++  java
  • 004.etcd集群部署-动态发现

    一 etcd发现简介

    1.1 需求背景

    在实际环境中,集群成员的ip可能不会提前知道。如使用dhcp自动获取的情况,在这些情况下,使用自动发现来引导etcdetcd集群,而不是指定静态配置,这个过程被称为“发现”。
    • etcd Discovery
    使用已有的 etcd cluster 来注册和启动
    • DNS发现
    使用 DNS 启动。

    1.2 实现机制

    Discovery service protocol帮助新的etcd成员使用共享URL在集群引导阶段发现所有其他成员。
    该协议使用新的发现令牌来引导一个唯一的etcd集群。一个发现令牌只能代表一个etcd集群。只要此令牌上的发现协议启动,即使它中途失败,也不能用于引导另一个etcd集群。
    提示:Discovery service protocol仅用于集群引导阶段,不能用于运行时重新配置或集群监视。

    1.3 协议工作流程

    Discovery protocol是使用内部etcd集群来协调新集群的引导程序。首先,所有新成员都与发现服务交互,并帮助生成预期的成员列表。然后,每个新成员使用此列表引导其服务器,该列表执行与--initial-cluster标志相同的功能,即设置所有集群的成员信息。

    二 集群部署-etcd自带发现

    2.1 环境准备

    ntp配置:略 #建议配置ntp服务,保证时间一致性
    etcd版本:v3.3.9
    防火墙及SELinux:关闭防火墙和SELinux
    名称
    地址
    主机名
    备注
    etcd1
    172.24.8.71
    etcd1.example.com
     
    etcd2
    172.24.8.72
    etcd2.example.com
     
    etcd3
    172.24.8.73
    etcd3.example.com
     
      1 # hostnamectl set-hostname etcd1.example.com
      2 # hostnamectl set-hostname etcd2.example.com
      3 # hostnamectl set-hostname etcd3.example.com
      4 # vi /etc/hosts
      5 #……
      6 172.24.8.71 etcd1.example.com
      7 172.24.8.72 etcd2.example.com
      8 172.24.8.73 etcd3.example.com
    提示:CentOS6.x则修改/etc/sysconfig/network,以上为建议配置项。

    2.2 安装etcd

      1 # ETCD_VER=v3.3.9
      2 # GITHUB_URL=https://github.com/coreos/etcd/releases/download
      3 # DOWNLOAD_URL=${GITHUB_URL}
      4 # rm -f /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
      5 # rm -rf /tmp/etcd-download-test
      6 # mkdir -p /tmp/etcd-download-test		#创建下载保存目录
      7 # curl -L ${DOWNLOAD_URL}/${ETCD_VER}/etcd-${ETCD_VER}-linux-amd64.tar.gz -o /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
      8 # tar xzvf /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz -C /tmp/etcd-download-test --strip-components=1
      9 # cp /tmp/etcd-download-test/etcd /usr/local/bin/
     10 # cp /tmp/etcd-download-test/etcdctl /usr/local/bin/
     11 # rm -f /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
     12 
     13 # rm -rf /tmp/etcd-download-test/
     14 # ETCDCTL_API=3
     15 # etcd --version
     16 # etcdctl --version				#查看已安装版本
    提示:所有节点均需要安装etcd。

    2.3 启动前准备

      1 # mkdir -p /var/log/etcd/			#建议创建etcd日志保存目录
      2 # mkdir -p /data/etcd			#建议创建单独的etcd数据目录

    2.4 创建集群发现

      1 [root@etcd1 ~]# curl https://discovery.etcd.io/new?size=3	#使用公共etcd发现服务
      2 https://discovery.etcd.io/c41a8c03922c32eaa4be1e7bcf6332a8

    提示:size为集群节点数量,若未指定数量,则默认位3。

    2.5 启动集群

      1 [root@etcd1 ~]# etcd --name etcd1 --data-dir /data/etcd 
      2 --initial-advertise-peer-urls http://172.24.8.71:2380 
      3 --listen-peer-urls http://172.24.8.71:2380 
      4 --listen-client-urls http://172.24.8.71:2379,http://127.0.0.1:2379 
      5 --advertise-client-urls http://172.24.8.71:2379 
      6 --discovery https://discovery.etcd.io/c41a8c03922c32eaa4be1e7bcf6332a8
      7 
      8 [root@etcd2 ~]# etcd --name etcd2 --data-dir /data/etcd 
      9 --initial-advertise-peer-urls http://172.24.8.72:2380 
     10 --listen-peer-urls http://172.24.8.72:2380 
     11 --listen-client-urls http://172.24.8.72:2379,http://127.0.0.1:2379 
     12 --advertise-client-urls http://172.24.8.72:2379 
     13 --discovery https://discovery.etcd.io/c41a8c03922c32eaa4be1e7bcf6332a8
     14 
     15 [root@etcd3 ~]# etcd --name etcd3 --data-dir /data/etcd 
     16 --initial-advertise-peer-urls http://172.24.8.73:2380 
     17 --listen-peer-urls http://172.24.8.73:2380 
     18 --listen-client-urls http://172.24.8.73:2379,http://127.0.0.1:2379 
     19 --advertise-client-urls http://172.24.8.73:2379 
     20 --discovery https://discovery.etcd.io/c41a8c03922c32eaa4be1e7bcf6332a8
     
    提示:每个成员必须指定不同的名称标志,否则发现将因重复的名称而失败。

    2.6 集群检测

      1 [root@etcd1 ~]# etcdctl member list
      2 [root@etcd1 ~]# etcdctl cluster-health
     
    14_thumb1

    三 集群部署-DNS发现

    参考官方文档:

    https://github.com/etcd-io/etcd/blob/master/Documentation/op-guide/configuration.md

  • 相关阅读:
    《大话数据结构》第1章 数据结构绪论 1.2 你数据结构怎么学的?
    伍迷七八月新浪微博集锦
    《大话数据结构》第9章 排序 9.7 堆排序(下)
    《大话数据结构》第3章 线性表 3.8.2 单链表的删除
    《大话数据结构》第9章 排序 9.5 直接插入排序
    《大话数据结构》第9章 排序 9.8 归并排序(上)
    《大话数据结构》第2章 算法基础 2.9 算法的时间复杂度
    《大话数据结构》第1章 数据结构绪论 1.1 开场白
    《大话数据结构》第9章 排序 9.1 开场白
    [AWS] Assign a public IP address to an EC2 instance after launched
  • 原文地址:https://www.cnblogs.com/itzgr/p/10245825.html
Copyright © 2011-2022 走看看