版本管理
etcd采用x.y.z标识版本,x是主版本,y是次版本,z是补丁版本。
etcd维护当前版本和先前版本的分支,例如v3.5是当前版本,同时维护v3.4,当v3.6发布时,v3.4就不再维护
etcd最新版本是:v3.5.7
ECX使用的版本:v3.3.15(官方不再维护),需要考虑升级到3.5
其他需要升级的问题:
- v3.4之前版本的客户端存在负载均衡bug,如果第一个节点出现异常,访问服务端时也可能出现异常
配置参数
配置方式和优先级:--config-file etcd.conf.yml > command line flags 和 environment variables
etcd 3.3配置参考:etcd v3.3 configuration
本次调整的配置项:
quota-backend-bytes: 8589934592(修改/etc/etcd/etcd.config.yml 增加quota-backend-bytes: 8589934592,重启etcd。注意:如果集群已经触发alarm:NOSPACE,修改配置不会生效,需要执行etcdctl alarm disarm)
资源预留
CPU:8核
内存:16GB
磁盘:建议SSD
- 对顺序写时延敏感,建议顺序写IOPS > 500
- 带宽,建议100MB/s,带宽越大,从故障恢复越快
- 空间:
- data-dir: /var/lib/etcd 100GB
- wal-dir: /var/lib/etcd/wal 共用上述空间即可
- 备份目录: /root/etcd_bak 每天备份保留7个副本 需要7倍于/var/lib/etcd/member 的空间,100GB足够
网络:建议10GbE带宽
QoS
磁盘:ionice命令设置etcd的优先级
# 设置etcd IO调度优先级为尽最大努力调度 ionice -c2 -n0 -p `pgrep etcd` # 验证设置是否成功 ionice -p `pgrep etcd` |
网络:tc命令设置更高优先级
tc qdisc add dev br211 root handle 1: prio bands 3 tc filter add dev br211 parent 1: protocol ip prio 1 u32 match ip sport 2380 0xffff flowid 1:1 tc filter add dev br211 parent 1: protocol ip prio 1 u32 match ip dport 2380 0xffff flowid 1:1 tc filter add dev br211 parent 1: protocol ip prio 2 u32 match ip sport 2379 0xffff flowid 1:1 tc filter add dev br211 parent 1: protocol ip prio 2 u32 match ip dport 2379 0xffff flowid 1:1 |