Etcd教程 — 第三章 Etcd集群动态发现、DNS发现
1 前言
本章操作内容建立在第二章静态发现 ※2.3 多机搭建Etcd集群 基础上
Etcd教程 — 第二章 Etcd集群静态发现 ※2.3 多机搭建Etcd集群
2 Etcd集群动态发现
2.1 需求背景
在实际环境中,集群成员的ip可能不会提前知道。如使用dhcp自动获取的情况,在这些情况下,使用自动发现来引导etcd集群,而不是指定静态配置,这个过程被称为“发现”。
2.2 实现机制
-
Discovery Service Protocol帮助新的Etcd成员使用共享URL在集群引导阶段发现所有其他成员。 -
该协议使用新的发现令牌来引导一个唯一的etcd集群。一个发现令牌只能代表一个etcd集群。只要此令牌上的发现协议启动,即使它中途失败,也不能用于引导另一个etcd集群。
-
提示:Discovery service protocol仅用于集群引导阶段,不能用于运行时重新配置或集群监视。
2.3 工作流程
- 所有新成员都与发现服务交互并帮助生成预期的成员列表。
- 每个新成员使用此列表引导其服务器。
- 该列表执行与
--initial-cluster标志相同的功能,即设置集群所有成员的信息。
2.4 各服务器配置
注意:node01、node02、node03在 2.3 多机搭建Etcd集群时已用做搭建etcd静态集群,这里仅使用node04、node05来搭建动态集群,实际上应该使用至少3台服务器来搭建,本文只是演示搭建的流程,node04、node05节点也需要开放2379、2380端口,node04、node05节点上仅安装好etcd即可,不要进行过多配置。

2.5 具体步骤
以 node04节点为例,node05也一样的步骤,各自使用各自生成的uuid。
2.5.1 获取 discovery 的 token
随机生成一个可以标识新集群的唯一令牌。 在后续步骤中,它将用作发现键空间中的唯一前缀。 一种简单的方法是使用uuidgen:
UUID=$(uuidgen)
使用方法:直接输入命令uuidgen即可生成UUID=27b16399-120c-4e3e-8553-3f2b82b3c319,然后把这个UUID加入到请求信息中。

2.5.2 指定集群的大小
获取令牌时,必须指定集群大小, 发现服务使用该大小来了解何时发现了最初将组成集群的所有成员。
在新的节点上往已有的集群发送:
curl -X PUT http://192.168.13.21:2379/v2/keys/discovery/27b16399-120c-4e3e-8553-3f2b82b3c319/_config/size -d value=1
返回信息:
{
"action":"set","node":{
"key":"/discovery/27b16399-120c-4e3e-8553-3f2b82b3c319/_config/size","value":"1","modifiedIndex":15,"createdIndex":15}}

我们需要把该 url 地址 http://192.168.13.21:2379/v2/keys/discovery/27b16399-120c-4e3

本教程详细介绍了Etcd集群的动态发现和DNS发现机制。在动态发现中,通过获取discovery token和指定集群大小,新成员能够自动加入集群。在DNS发现中,利用公共或自定义的DNS服务,实现集群成员的自动发现。教程涵盖了从生成UUID到启动etcd命令的具体步骤,并提供了验证集群健康状况的方法。

9654

被折叠的 条评论
为什么被折叠?



