6、获取
- etcd项目地址:https://github.com/coreos/etcd/
- etcd下载地址:https://github.com/etcd-io/etcd/releases 根据需要查找对应版本下载即可
二、etcd安装
1、创建并切换到下载目录
mkdir /usr/local/mytools && cd /usr/local/mytools
2、下载
这一步可跳过,因为下载较慢,可以直接用自己下载好的上传至linux进行第四部解压即可。
wget https://github.com/etcd-io/etcd/releases/download/v3.4.3/etcd-v3.4.3-linux-amd64.tar.gz
3、解压文件到当前目录
tar xzvf etcd-v3.4.3-linux-amd64.tar.gz
4、查看
切换至etcd根目录,运行查看命令ls,里面会有一些文档和2个二进制文件etcd和etcdctl。etcd是server端,etcdctl是客户端
[root@localhost mytools]# ls
etcd-v3.4.3-linux-amd64 etcd-v3.4.3-linux-amd64.tar.gz etcd-v3.4.3-linux-amd64.tar.gz.1
[root@localhost mytools]# cd etcd-v3.4.3-linux-amd64/
[root@localhost etcd-v3.4.3-linux-amd64]# ls
Documentation etcd etcdctl README-etcdctl.md README.md READMEv2-etcdctl.md
5、复制
将etcd和etcdctl二进制文件复制到/usr/local/bin目录, 这样系统中可以直接调用etcd/etcdctl这两个程序
cp etcd etcdctl /usr/local/bin
6、查看etcd版(v2/v3)
etcd --version
7、设置etcd版本
etct3.4.3默认使用v3命令所以步骤7可省略,之前版本此步骤不可少,例如:v3.3.10
vi /etc/profile
# 最后一行指定etcdctl命令的版本为v3
export ETCDCTL\_API=3
# 刷新环境变量
source /etc/profile
#查看当前etcdctl的版本信息
#v2版本命令和v3命令是不一样的,例如:
#v2查看版本号
etcdctl -version或 etcdctl -v
#v3查看版本号
etcdctl version
# 更多命令帮助可以查询
etcdctl --help
8、启动
etcd
参数说明
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相关目录(即数据文件和配置文件的保存位置)
/etc目录是整个Linux系统的中心,其中包含所有系统管理和维护方面的配置文件,所以etcd的配置也放在这里
mkdir -p /var/lib/etcd/ && mkdir -p /etc/etcd/
2、创建etcd配置文件
vim /etc/etcd/etcd.conf
插入:
# 节点名称
ETCD\_NAME="etcd0"
# 指定数据文件存放位置
ETCD\_DATA\_DIR="/var/lib/etcd/"
3、创建systemd配置文件
vim /etc/systemd/system/etcd.service
插入:
[Unit]
Description=Etcd Server
After=network.target
After=network-online.target
Wants=network-online.target
## 对于那些严格要求 必须存在真实可用的网络连接的单元,
## 应该在其单元文件中包含 Wants=network-online.target
## 与 After=network-online.target 指令
[Service]
User=root
Type=notify
WorkingDirectory=/var/lib/etcd/
## 根据实际情况修改EnvironmentFile和ExecStart这两个参数值
## 1.EnvironmentFile即配置文件的位置,注意“-”不能少
EnvironmentFile=-/etc/etcd/etcd.conf
## 2.ExecStart即etcd启动程序位置
ExecStart=/usr/local/bin/etcd
Restart=on-failure
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
4、启动/停止/查看etcd服务
## 1.重新加载systemd服务
systemctl daemon-reload
## 2.设置开机自启动
systemctl enable etcd
## 3.启动etcd
systemctl start etcd
## 4.查看etcd运行状态
systemctl status etcd
## 5.停止服务
systemctl stop etcd
## 6.重启etcd
systemctl restart etcd
四、常用操作
1、 如何获取帮助
etcdctl -h
2、put,放入值
etcdctl put /testdir/testkey "Hello world"
3、get,获取值
etcdctl get /testdir/testkey
4、del
# 清空数据
etcdctl del / --prefix
#删除所有/test前缀的节点
etcdctl del /test --prefix
5、watch