运维之etcd经验

我是研究僧i 提交于 2020-08-09 16:04:15

前言

etcd 是一个不错的注册中心。作为团里里面第一个试水的小组,我们是遇到不少问题。 etcd中文文档 etcd中文文档 etcd官方英文文档

安装细节

没有使用官网的方式,而是使用读取配置文件的方式,这种方便管理,配置等。

  1. 创建目录,下载,解压
  2. 设置API版本号
    vim /etc/profile
    export ETCDCTL_API=3
    source /etc/profile
  1. 创建数据,配置,日志文件目录
  2. 创建配置文件
    1. 单节点配置文件
    2. 集群配置文件
  3. 把配置写入到配置文件里面
  4. 把etcd 与etcd-cli变成命令
  5. 启动etcd
    前端启动,注意启动后 ./etcd --config-file etcd.conf 
    后台启动并且开启远程访问 nohup ./etcd --config-file ./conf/etcd.conf > ./logs/etcd.log 2>&1 &
    集群前端启动,注意启动后 ./etcd --config-file etcd.cluster.conf 
    集群后台启动并且开启远程访问 nohup ./etcd --config-file ./conf/etcd.cluster.conf > ./logs/etcd.log 2>&1 &
    注意:启动后关闭不了,直接杀进程。开启远程访问需要带命令。

8,. 租约 9. 网络

问题

etcd API版本问题

etcd api 版本分为2.0与3.0 两个版本,默认使用2.0的版本API。作为一个新手很容易犯这种初级错误,建议大家默认使用api3.0版本。如何操作请看安装流程第二步

etcd 集群操作

etcd-cli 可以集群操作,可以同时对多个ectd节点进行操作。 在命令后面加入--endpoints参数。--endpoints=ip:port,ip:port

etcd-cli get /xxxx --endpoints=127.0.0.1:2379,127.0.0.1:2378

开启本地端口

如果不开启本地端口,在使用任何命令的时候都需要加上--endpoints=内网或者外网地址:port。在配置文件配置liste-client-urls。

listen-client-urls: http://内网或者外网地址:port,http://127.0.0.1:2379

etcd内存问题

etcd 对内存与磁盘都非常敏感,所以需要非常注意etcd内存使用情况

  1. 内存尽量最够大
  2. etcd 内存使用是使用内存的两倍。一份是内存,一份是cache。比如1G的数据会使用1G的内存,1G的cache
  3. etcd 数据删除,只会缓慢的删除数据,不会立马删除,尤其是cache
  4. etcd所在的操作系统的内存使用完,etcd直接不可用,不管在怎么压缩处理,一直不可用
etcd内存处理细节
  1. 内存报警,建议是使用内存达到50%就报警,防止异常情况造成内存暴增。
quota-backend-bytes: 15032385536
  1. etcd 快照配置 在配置文件里面加入这两个配置参数
# 配置snapshots保留份数
max-snapshots: 5
# 配置 wals 保留份数
max-wals: 5
  1. etcd 内存与磁盘命令整理
#使用API3
export ETCDCTL_API=3
# 查看告警信息,告警信息一般 memberID:8630161756594109333 alarm:NOSPACE
etcdctl --endpoints=http://127.0.0.1:2379 alarm list

# 获取当前版本
rev=$(etcdctl --endpoints=http://127.0.0.1:2379 endpoint status --write-out="json" | egrep -o '"revision":[0-9]*' | egrep -o '[0-9].*')
# 压缩掉所有旧版本
etcdctl --endpoints=http://127.0.0.1:2379 compact $rev
# 整理多余的空间
etcdctl --endpoints=http://127.0.0.1:2379 defrag
# 取消告警信息
etcdctl --endpoints=http://127.0.0.1:2379 alarm disarm
  1. etcd 内存与磁盘自动整理 在配置文件里面加入这两个配置参数
# 每小时整理一次
auto-compaction-retention: "1"
# 整理的类型
auto-compaction-mode: periodic

操作命令

使用etcdctl 可以执行shell命令,看下etcd 内存与磁盘命令整理的内存

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!