一、简介

etcd是一个类似于zk的工具,用于保存值,节点-值这种映射关系的。节点组织结构类似unix文件系统结构,从/最开始。

GitHub地址:

二、etcd 安装配置

1、安装
wget https://github.com/coreos/etcd/releases/download/v3.3.4/etcd-v3.3.4-linux-amd64.tar.gz
tar zxvf etcd-v3.3.4-linux-amd64.tar.gz
2、新增配置文件
cd etcd-v3.3.4-linux-amd64
vim  etcd.conf
# etcd config file
name: etcd-1  # 节点名称
data-dir: default.etcd/  # 指定节点的数据存储目录
# 对外提供服务的地址,客户端会连接到这里和 etcd 交互
listen-client-urls: http://10.200.0.105:2379,http://127.0.0.1:2379
3、启动
./etcd --config-file etcd.conf

4、简单使用

./etcdctl set /test/name testvalue  # 设置值
./etcdctl get /test/name            # 获取值
./etcdctl --help                   # 查看帮助信息
5、集群配置

以下是集群相关配置,这里单节点,没有用到

# 对外公告的该节点客户端监听地址,这个值会告诉集群中其他节点
advertise-client-urls: http://10.200.0.105:2379,http://127.0.0.1:2379  

# 监听URL,用于与其他节点通讯
listen-peer-urls: http://10.200.0.105:2380
# 该节点同伴监听地址,这个值会告诉集群中其他节点
initial-advertise-peer-urls: http://10.200.0.105:2380  

# 集群中所有节点的信息
initial-cluster: etcd-1=http://10.200.0.105:2380,etcd-2=http://192.168.108.129:2380
# 创建集群的 token,这个值每个集群保持唯一。如果要重新创建集群,即使配置和之前一样,也会再次生成新的集群和节点 uuid;否则会导致多个集群之间的冲突,造成未知的错误
initial-cluster-token: etcd-cluster-token  
# 新建集群的时候,这个值为 new ;假如已经存在的集群,这个值为 existing
initial-cluster-state: new  

三、etcd-browser(etcd-webui)安装

  • 安装
yum -y install nodejs git
git clone https://github.com/henszey/etcd-browser.git
  • 解压编辑server.js文件
vim server.js  # 编辑如下三行
var etcdHost = process.env.ETCD_HOST || '172.17.42.1';  # etcd 主机IP
var etcdPort = process.env.ETCD_PORT || 4001;          # etcd 主机端口
var serverPort = process.env.SERVER_PORT || 8000;      # etcd-browser 监听端口
  • 启动
node server.js

etcd-browser Screen Shot

四、etcdkeeper3支持v2支持etcd v3 api

etcd browser配置目前只支持etcd v2 api

etckeeper github 地址:https://github.com/evildecay/etcdkeeper

etcd2和etcd3是不兼容的,两者的api参数也不一样,详细请查看 etcdctl -h 。

可以使用api2 和 api3 写入 etcd3 数据,但是需要注意,使用不同的api版本写入数据需要使用相应的api版本读取数据。

api 2 使用方法

ETCDCTL_API=2 etcdctl ls /  

api 3 使用方法

ETCDCTL_API=3 etcdctl get /  

例如:查询所有key :

$ export ETCDCTL_API=3  
$ export ETCD_ENDPOINTS="https://192.168.5.7:2379,https://192.168.5.8:2379,https://192.168.5.86:2379"  
$ etcdctl --endpoints=${ETCD_ENDPOINTS} get / --prefix --keys-only  
etcdv2

image

etcdv3

image

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐