etcd 安装与管理

目的

初始化启动 etcd 服务
检测 etcd 集群健康状态
检测 etcd 集群成员
重置 etcd 集群

环境说明

角色主机名ipaddrosetcd 版本
etcdqemu-test6.vclound.comxx.xxx.205.229centos 7etcd-3.0.15-1.el7.x86_64
etcdqemu-test3.vclound.comxx.xxx.205.226
etcdqemu-test8.vclound.comxx.xxx.205.231

软件安装

yum install -y etcd

配置

每个 member 根据自己主机名, IP 地址, 配置相应
/etc/etcd/etcd.conf

[root@qemu-test6 ~]# grep -v "#" /etc/etcd/etcd.conf
ETCD_NAME=qemu-test6
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="http://xx.xxx.205.229:2380"
ETCD_LISTEN_CLIENT_URLS="http://xx.xxx.205.229:2379,http://127.0.0.1:2379"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://xx.xxx.205.229:2380"
ETCD_INITIAL_CLUSTER="qemu-test6=http://xx.xxx.205.229:2380,qemu-test3=http://xx.xxx.205.226:2380,qemu-test8=http://xx.xxx.205.231:2380"
ETCD_INITIAL_CLUSTER_STATE="new"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-skydns-cluster"
ETCD_ADVERTISE_CLIENT_URLS="http://xx.xxx.205.229:2379"

详细说明

主机名配置

ETCD_NAME
每个机器填写自己主机名, 取 hostname -s 值即可,

监听地址

ETCD_LISTEN_CLIENT_URLS="http://xx.xxx.205.229:2379,http://127.0.0.1:2379"
用于 etcdctl 命令连接, 其中 127.0.01 用于本地连接

ETCD_LISTEN_PEER_URLS="http://xx.xxx.205.229:2380"
用于监听其他 etcd member 连接

初始化

ETCD_INITIAL_ADVERTISE_PEER_URLS="http://xx.xxx.205.229:2380"
本地用于监听并连接其他 member 的地址

ETCD_INITIAL_CLUSTER="qemu-test6=http://xx.xxx.205.229:2380,qemu-test3=http://xx.xxx.205.226:2380,qemu-test8=http://xx.xxx.205.231:2380"
启动集群使, 使用静态连接方法, 定义每个 member 主机名 endpoint

ETCD_INITIAL_CLUSTER_STATE="new"
用于表示初始化集群

ETCD_INITIAL_CLUSTER_TOKEN="etcd-skydns-cluster"  
用于标记集群唯一性的 token

启动 etcd

注意, 第一台启动的 etcd 服务器将会不断等待其他集群成员完成初始化连接, 处于 waiting 状态

systemctl start etcd

服务检测状态

[root@qemu-test6 ~]# systemctl status etcd
● etcd.service - Etcd Server
   Loaded: loaded (/usr/lib/systemd/system/etcd.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2017-12-11 10:57:52 CST; 11s ago
 Main PID: 10135 (etcd)
   CGroup: /system.slice/etcd.service
           └─10135 /usr/bin/etcd --name=qemu-test6 --data-dir=/var/lib/etcd/default.etcd --listen-client-urls=http://xx.xxx.205.229:2379

Dec 11 10:57:56 qemu-test6 etcd[10135]: failed to reach the peerURL(http://xx.xxx.205.231:2380) of member f8ef84dbaeb0e89a (Get http://xx.xxx.205.231:2380/vers...on refused)
Dec 11 10:57:56 qemu-test6 etcd[10135]: cannot get the version of member f8ef84dbaeb0e89a (Get http://xx.xxx.205.231:2380/version: dial tcp xx.xxx.205.231:2380...on refused)
Dec 11 10:57:59 qemu-test6 etcd[10135]: peer f8ef84dbaeb0e89a became active
Dec 11 10:57:59 qemu-test6 etcd[10135]: established a TCP streaming connection with peer f8ef84dbaeb0e89a (stream MsgApp v2 writer)
Dec 11 10:57:59 qemu-test6 etcd[10135]: established a TCP streaming connection with peer f8ef84dbaeb0e89a (stream Message writer)
Dec 11 10:57:59 qemu-test6 etcd[10135]: established a TCP streaming connection with peer f8ef84dbaeb0e89a (stream Message reader)
Dec 11 10:57:59 qemu-test6 etcd[10135]: established a TCP streaming connection with peer f8ef84dbaeb0e89a (stream MsgApp v2 reader)
Dec 11 10:58:00 qemu-test6 etcd[10135]: updating the cluster version from 2.3 to 3.0
Dec 11 10:58:00 qemu-test6 etcd[10135]: updated the cluster version from 2.3 to 3.0
Dec 11 10:58:00 qemu-test6 etcd[10135]: enabled capabilities for version 3.0
Hint: Some lines were ellipsized, use -l to show in full.

关闭 etcd

systemctl stop etcd

集群健康检测

[root@qemu-test6 ~]# etcdctl cluster-health
member 3a412437d7a67c64 is healthy: got healthy result from http://xx.xxx.205.229:2379
member eb6747efc5a87825 is healthy: got healthy result from http://xx.xxx.205.226:2379
member f8ef84dbaeb0e89a is healthy: got healthy result from http://xx.xxx.205.231:2379
cluster is healthy

集群成员检测

[root@qemu-test6 ~]# etcdctl member list
3a412437d7a67c64: name=qemu-test6 peerURLs=http://xx.xxx.205.229:2380 clientURLs=http://xx.xxx.205.229:2379 isLeader=true
eb6747efc5a87825: name=qemu-test3 peerURLs=http://xx.xxx.205.226:2380 clientURLs=http://xx.xxx.205.226:2379 isLeader=false
f8ef84dbaeb0e89a: name=qemu-test8 peerURLs=http://xx.xxx.205.231:2380 clientURLs=http://xx.xxx.205.231:2379 isLeader=false
常见错误
[root@qemu-test6 ~]# etcdctl member list
Error:  client: etcd cluster is unavailable or misconfigured
error #0: dial tcp 127.0.0.1:2379: getsockopt: connection refused
error #1: dial tcp 127.0.0.1:4001: getsockopt: connection refused

上述问题, 是 ETCD_LISTEN_CLIENT_URLS=”http://127.0.0.1:2379” 没有提供 127 本地地址导致,那么通过指定 endpoint 方法解决

etcdctl --endpoints http://xx.xxx.205.229:2379,http://xx.xxx.205.229:4001 member list

集群初重置

1 利用 systemctl stop etcd 关闭集群, 在重新启动集群, 之前 etcd 保存的资料不会丢失
2 要对 etcd 集群进行重置, 最简单的方式是关闭集群后, 
3 删除了所有 etcd member 中 ETCD_DATA_DIR 配置中定义的目录下的所有子目录
4 启动所有 member 即可
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Terry_Tsang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值