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 [[email protected] ~]# curl https://discovery.etcd.io/new?size=3	#使用公共etcd发现服务
  2 https://discovery.etcd.io/c41a8c03922c32eaa4be1e7bcf6332a8

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

2.5 启动集群

  1 [[email protected] ~]# 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 [[email protected] ~]# 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 [[email protected] ~]# 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 [[email protected] ~]# etcdctl member list
  2 [[email protected] ~]# etcdctl cluster-health

三 集群部署-DNS发现

参考官方文档:

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

原文地址:https://www.cnblogs.com/itzgr/p/10245825.html

时间: 2024-09-27 16:46:01

004.etcd集群部署-动态发现的相关文章

etcd 集群部署

关于etcd的介绍,我这里就不做介绍.百度一下即可,主要还是讲一下部署. 一.环境介绍 1.1 主机环境 IP地址 主机名 角色 备注 192.168.15.131 k8s-master01 k8s-master/etcd_cluster01   192.168.15.132 k8s-master02 k8s-master/etcd_cluster01   192.168.15.133 k9s-master03 k8s-master/etcd_cluster01   提示:这样命名主要是因为部署

ETCD集群部署

ETCD 聚群部署 1.环境 172.16.50.121 morepay01 CentOS 7.4.1708 172.16.50.122 morepay02 CentOS 7.4.1708 172.16.50.123 morepay03 CentOS 7.4.1708 2.部署 2.1 软件安装 yum install etcd -y && mkdir /data/etcd -p && chown etcd:etcd /data/etcd 2.2 配置文件修改 /etc/e

Kubernetes部署(四):ETCD集群部署

手动部署ETCD集群 0.准备etcd软件包 [[email protected] k8s]# wget https://github.com/coreos/etcd/releases/download/v3.2.18/etcd-v3.2.18-linux-amd64.tar.gz [[email protected] k8s]# tar zxf etcd-v3.2.18-linux-amd64.tar.gz [[email protected] k8s]# cd etcd-v3.2.18-li

etcd集群部署与遇到的坑

在k8s集群中使用了etcd作为数据中心,在实际操作中遇到了一些坑.今天记录一下,为了以后更好操作. ETCD参数说明 —data-dir 指定节点的数据存储目录,这些数据包括节点ID,集群ID,集群初始化配置,Snapshot文件,若未指定—wal-dir,还会存储WAL文件: —wal-dir 指定节点的was文件的存储目录,若指定了该参数,wal文件会和其他数据文件分开存储. —name 节点名称 —initial-advertise-peer-urls 告知集群其他节点url. — li

etcd集群部署与遇到的坑(转)

在k8s集群中使用了etcd作为数据中心,在实际操作中遇到了一些坑.今天记录一下,为了以后更好操作. ETCD参数说明 —data-dir 指定节点的数据存储目录,这些数据包括节点ID,集群ID,集群初始化配置,Snapshot文件,若未指定—wal-dir,还会存储WAL文件: —wal-dir 指定节点的was文件的存储目录,若指定了该参数,wal文件会和其他数据文件分开存储. —name 节点名称 —initial-advertise-peer-urls 告知集群其他节点url. — li

手动安装K8s第三节:etcd集群部署

准备安装包https://github.com/coreos/etcd版本:3.2.18wget https://github.com/coreos/etcd/releases/download/v3.2.18/etcd-v3.2.18-linux-amd64.tar.gz 0.安装[[email protected] src]# tar zxf etcd-v3.2.18-linux-amd64.tar.gz[[email protected] src]# cd etcd-v3.2.18-lin

etcd 集群部署与数据恢复

节点规划 172.25.102.10 node1 172.25.102.39 node2 172.25.102.17 node3 部署过程 三个节点都执行 yum install etcd -y mkdir /data/etcd node1: 配置文件 $ cat /etc/etcd/etcd.conf #[Member] ETCD_NAME="node1" ETCD_DATA_DIR="/data/etcd/node1.etcd/" ETCD_LISTEN_PEE

k8s v1.13.4 集群部署

部署环境 主机节点清单 服务器名 ip地址 etcd K8S server K8s node node01 172.16.50.111 Y Y node02 172.16.50.113 Y Y node03 172.16.50.115 Y Y node04 172.16.50.116 Y node05 172.16.50.118 Y node06 172.16.50.120 Y node07 172.16.50.128 Y 版本信息 Linux版本:CentOS 7.6.1810 内核版本:3.

基于 DNS 动态发现方式部署 Etcd 集群

使用discovery的方式来搭建etcd集群方式有两种:etcd discovery和DNS discovery.在 「基于已有集群动态发现方式部署etcd集群」一文中讲解了etcd discovery这种方式,今天我们就来讲讲DNS discovery这种方式的实现. etcd在基于DNS做服务发现时,实际上是利用DNS的SRV记录不断轮训查询实现的.DNS SRV是DNS数据库中支持的一种资源记录的类型,它记录了哪台计算机提供了哪个服务这么一个简单信息. 本文采用dnsmasq作为dns服