1.介绍

Raft:etcd所采用的保证分布式系统强一致性的算法。
Node(节点):一个Raft状态机实例。
Member(成员): 一个etcd实例。它管理着一个Node,并且可以为客户端请求提供服务。
Cluster(集群):由多个Member构成可以协同工作的etcd集群。
Peer(伙伴):对同一个etcd集群中另外一个Member的称呼。
Client(客户端): 向etcd集群发送HTTP请求的客户端。
WAL:预写式日志,etcd用于持久化存储的日志格式。
snapshot:etcd防止WAL文件过多而设置的快照,存储etcd数据状态。
Proxy:etcd的一种模式,为etcd集群提供反向代理服务。
Leader(领导者):Raft算法中通过竞选而产生的处理所有数据提交的节点。
Follower(跟随者):竞选失败的节点作为Raft中的从属节点,为算法提供强一致性保证。
Candidate:当Follower超过一定时间接收不到Leader的心跳时转变为Candidate开始Leader竞选。
Term:某个节点成为Leader到下一次竞选开始的时间周期,称为一个Term。
Index:数据项编号。Raft中通过Term和Index来定位数据。
 

2.安装

# 1.上传etcd安装包

tar -zxvf etcd-v3.4.3-linux-amd64.tar.gz

# 2.切换至etcd根目录,将etcd和etcdctl二进制文件复制到/usr/local/bin目录这样系统中可以直接调用etcd/etcdctl这两个程序

cp etcd etcdctl /usr/local/bin

# 3.查看etcd版本

etcd --version

# 4.输入命令etcd,即可启动一个单节点的etcd服务,ctrl+c即可停止服务


3. 说明

1)name表示节点名称,默认为default。

2)data-dir 保存日志和快照的目录,默认为当前工作目录default.etcd/目录下。

3)在http://localhost:2380和集群中其他节点通信。

4)在http://localhost:2379提供客户端交互。

5)heartbeat为100ms,该参数的作用是leader多久发送一次心跳到followers,默认值是100ms。

6)election为1000ms,该参数的作用是重新投票的超时时间,如果follow在该时间间隔没有收到心跳包,会触发重新投票,默认为1000ms。

7)snapshot count为10000,该参数的作用是指定有多少事务被提交时,触发截取快照保存到磁盘。

8)集群和每个节点都会生成一个uuid。

9)启动的时候会运行raft,选举出leader。
 

# 创建一个etcd服务
# 1.建立etcd相关目录(即数据文件和配置文件的保存位置)

mkdir -p /var/lib/etcd/ && mkdir -p /etc/etcd/

# 2.创建etcd配置文件

# vim /etc/etcd/etcd.conf

# 3.创建systemd配置文件

vim /etc/systemd/system/etcd.service

# 4.启动/停止/查看etcd服务

# 刷新系统缓存    systemctl daemon-reload  

# 开机自启     systemctl enable etcd

# 启动etcd     systemctl start etcd

# 查看状态      systemctl status etcd

# etcd基本使用
#  etcdctl是一个命令行客户端,可以对etcd服务进行测试或者手动修改数据库内容。另外,etcdctl还支持# HTTP API(之后介绍)。 etcdctl支持的命令大体上分为数据库操作和非数据库操作两类。

# 1.帮助命令

etcdctl -h

# 2.put 放入数据

etcdctl put /testdir/testkey "Hello world"

--sort 对结果进行排序

--consistent 将请求发给主节点,保证获取内容的一致性。

# 3.del 删除数据

# 清空数据 etcdctl del / --prefix

# 删除所有/test前缀的节点 etcdctl del /test --prefix

# 4.watch 监测一个键值的变化,一旦键值发生更新,就会输出最新的值并退出

etcdctl watch key1

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐