Etcd说明

Etcd是一个高可用的 Key/Value 存储系统,主要用于分享配置和服务发现.

特点:

简单:支持 curl 方式的用户 API (HTTP+JSON)

安全:可选 SSL 客户端证书认证

快速:单实例可达每秒 1000 次写操作

可靠:使用 Raft 实现分布式

etcd结构:

一个 etcd 节点的核心由三部分组成:

  • Raft:raft 状态机是对 raft 共识算法的实现
  • WAL:raft 日志存储
  • Storage:数据的存储与索引

安装和使用:

wget https://github.com/coreos/etcd/releases/download/v0.4.6/etcd-v0.4.6-linux-amd64.tar.gz
cp etcd* /bin/
etcd -version

启动etcd:
# mkdir /data/etcd   
# /bin/etcd -name etcdserver -peer-addr 192.168.1.21:7001 -addr 192.168.1.21:4001 -data-dir /data/etcd -peer-bind-addr 0.0.0.0:7001 -bind-addr 0.0.0.0:4001 &  
参数“-peer-addr”指定与其它节点通讯的地址;参数“-addr”指定服务监听地址;参数“-data-dir”为指定数据存储目录

API接口调用:

设置(set)插入数据:
curl -L http://127.0.0.1:4001/v2/keys/apps/abc.com -XPUT -d value="5.5.5.5:8080|6.6.6.6:8080"
curl -L http://127.0.0.1:4001/v2/keys/apps/bcd.com -XPUT -d value="3.3.3.3:8080|4.4.4.4:8080"
curl -L http://127.0.0.1:4001/v2/keys/apps/ef.com -XPUT -d value="1.1.1.1:8080|2.2.2.2:8080"

查询(get)数据:
curl -L http://127.0.0.1:4001/v2/keys/apps
删除(del)数据:
curl -L http://127.0.0.14001/v2/keys/lekey -XDELETE

ectdctl命令使用:

列出根目录下的内容:
etcdctl ls /
etcdctl get /apps/ap.com/
etcdctl mkdir /demo  新建目录
etcdctl mk demo   新建键
etcdctl rm /path  --recursive     递归删除目录下的所有目录和键

curl -L http://127.0.0.1:7001/v2/admin/config 
curl -L http://127.0.0.1:7001/v2/admin/machines

在Etcd的存储系统中,所有以下划线开头的目录都被认为是“隐藏目录”。这种目录是不能通过 etcdctl ls 命令或 HTTP GET访问其上级目录列出来的。而知道路径的准确名称的用户可以通过的完整路径以处理普通数据一样的方式对隐藏目录下的数据节点进行增删查改;然后直接使用GET访问 /App 目录看到的是一个空目录,但显示的获取 /App/_message数据节点,却能发现这个键是确实存在的。也就是说,隐藏的目录或键不会被列出,只有知道完整路径的用户可以直接访问到.

时间: 2024-08-29 18:40:29

Etcd说明的相关文章

kubernetes部署etcd集群

部署环境: CentOS Linux release 7.2 64位 10.10.0.103 etcd master 10.10.0.49   etcd follower master安装过程: # yum update # yum install -y etcd # [member] ETCD_NAME=etcd1 ETCD_DATA_DIR="/var/lib/etcd/default.etcd" #ETCD_WAL_DIR="" #ETCD_SNAPSHOT_

etcd的学习心得和使用

1 etcd key-value 存储结构 "A highly-available key value store for shared configuration and service discovery." Etcd是coreos开发的分布式服务系统,内部采用raft协议作为一致性算法 raft通过选举的方式来实现一致性,在Raft中,任何一个节点都可能成为Leader Etcd是一个高可用的 Key/Value 存储系统,主要用于分享配置和服务发现. ● 简单:支持 curl

使用Docker容器来源码编译etcd

背景 etcd是CoreOS公司开发的分布式键值对存储库.在Kubernetes中,我们需要使用etcd作为所有REST API对象的持久化存储. 不幸的是,在github的release中,CoreOS将etcd的二进制可执行文件都放在了亚马逊的S3存储上,在国内访问非常慢.因此,我们只能通过源码编译etcd. 过程 1. 下载etcd源码. $ git clone https://github.com/coreos/etcd.git $ cd etcd 2. 根据实际情况,选择合适的版本.如

etcd api 接口

etcd api接口 采用标准的restful 接口,支持http 和 https 两种协议. 1. PUT 为etcd存储的键赋值, 即创建 message 键值,赋值为"Hello world" 1 [[email protected] ~]# curl http://127.0.0.1:2379/v2/keys/message -X PUT -d value="Hello world" | python -m json.tool 2 % Total % Rec

Zookeeper和etcd比较

zookeeper: zookeeper是基于paxos的简化版zab,我觉得确实很难理解?,以前看了好多遍<从paxos到zookeper>才感觉似懂非懂了,然而过了几个月发现又一脸蒙蔽了,在这里在整理一下(仅表示我自己的理解) ZAB协议中存在着三种状态,每个节点都属于以下三种中的一种: 1. Looking :系统刚启动时或者Leader崩溃后正处于选举状态 2. Following :Follower节点所处的状态,Follower与Leader处于数据同步阶段: 3. Leading

Etcd学习(一)安装和测试

Etcd是一个比较新的分布式协调框架,现在才只到0.4.6版本,还没发布1.0版本 从网上搜etcd关键字,基本上就只能看到"开源中国"的介绍: etcd 是一个高可用的 Key/Value 存储系统,主要用于分享配置和服务发现.etcd 的灵感来自于 ZooKeeper 和 Doozer,侧重于: 简单:支持 curl 方式的用户 API (HTTP+JSON) 安全:可选 SSL 客户端证书认证 快速:单实例可达每秒 1000 次写操作 可靠:使用 Raft 实现分布式 Etcd

etcd集群的部署

node1  192.168.56.173 node2 192.168.56.174 node3 192.168.56.200 node* 为主机名称 [[email protected] ~]# cat /etc/redhat-release  CentOS Linux release 7.2.1511 (Core)  [[email protected] ~]# https://github.com/coreos/etcd/releases/download/v3.0.15/etcd-v3.

etcd raft library设计原理和使用

早在2013年11月份,在raft论文还只能在网上下载到草稿版时,我曾经写过一篇blog对其进行简要分析.4年过去了,各种raft协议的讲解铺天盖地,raft也确实得到了广泛的应用.其中最知名的应用莫过于etcd.etcd将raft协议本身实现为一个library,位于https://github.com/coreos/etcd/tree/master/raft,然后本身作为一个应用使用它. 本文不讲解raft协议核心内容,而是站在一个etcd raft library使用者的角度,讲解要用上这

etcd选举机制

etcd是一种先进的key-value的存储系统,本文主要是学习etcd的心得,如有误解,敬请拍砖 主要分成三种形式的选举,先说一下etcd节点的三种状态,分别为leader,candidate和follower 第一种:初始选举 A.B.C.D现在进场,那么谁当领导呢?A(变身candidatae)就分别找BCD谈话,"我来当,你没意见吧".B\C都没什么主见,就同意了,D虽然不同意,但是大家都这么说,只好也同意了.A就开始行使权利,定时从BCD同步日志,并发送心跳(heartbea

通过Etcd+Confd自动管理Haproxy(多站点)

当网站业务量急剧增大的时候,机器的扩容缩容就是家常便饭,Haproxy作为负载均衡器的变更频率就急剧加大,特别是Docker的出现,这个时候再也不能通过vim修改配置文件的形式去对业务进行变更. etcd:k/v形式的键值存储,用于存放配置 confd:根据从etcd中获取的配置,对haproxy进行修改 #confd的安装 wget https://github.com/kelseyhightower/confd/releases/download/v0.11.0/confd-0.11.0-l