目录
一.etcd简介
二.主要功能介绍
三.安装与配置(Linux下操作)
四.主要命令:
一.etcd简介
etcd是一个开源的、分布式的键值对数据存储系统。
用于储存key-value键值对,同时它不仅仅是存储,它主要用途是提供共享配置及服务发现,(后面这两个特征非常有特 点,主要用于container中),对于 leader的选举非常优秀,他的leader选举更换对于前端是无感知的。
应用容器读写数据在etcd上,除此嗨哟偶支持快照及查看历史事件的功能。
数据模型:
etcd的数据模型是非常有特点的。
一个持久的、多版本的并发控制数据模型(这有点类似与svn),也就是说All past cersions of keys are still accessible and watchable after modification,同时对于旧数据,它会进行压缩存储区,丢弃最旧的版本,防止数据库数据暴涨(只要有数据的压缩,就会覆盖最旧版本的数据)。
Note:etcd适用于较小的元数据键值对的处理,对于大的键值对数据的处理会导致其他请求时间的增加,数据目前最大支持1m数据的RPC(远程过程调用)请求,目前来说没有办法实现更大的数据配置。
二.主要功能介绍
1.键值写入与读取
2.过期时间
3.观察者
4.租约
5.集群管理相关操作
6.维护操作
7.用户及权限管理
三.安装与配置(Linux下操作)
1.系统要求:Linux、Windows(实验版本)
2.硬件要求:x86-64位架构的CPU、8CPU、16G RAM、50G SSD硬盘
3.安装步骤:
>下载安装文件:到https://github.com/coreos/etcd/releases下载linux-amd64版本。例如:etcd-v3.3.10-liunx-amd64.tar.gz
>或者直接:wget https://guthub.com/coreos/etcd/releases/download/v3.3.10/etcd-v3.3.10-liunx-amd64.tar.gz
>sudo tar -zxvf etcd-v3.3.10-liunx-amd64.tar.gz -C /opt/ (-c /opt/ 自定义安装目录)
4.配置:
-配置为v3版本;系统默认v2,通过下面命令修改配置
>sudo vim /etc/profile 在末尾加上 export ETCDCTL_API=3
>source /etc/profile
5.配置节点(建议节点数量为3,5,7,9....一般都是奇数,选举的时候多数承认leader,偶数选举leader):
---示例三个节点:192.168.108.128节点1,192.168.108.129节点2,192.168.108.130节点3
6.创建节点配置文件:
--创建配置文件目录
>sudo mkdir /etc/etcd
创建etcd配置文件
>sudo vim /etc/etcd/conf.yml
-添加如下内容
>name:etcd-1
>data-dir:/opt/etct-v3.3.10-liunx-amd64/data (安装时自定路径,看一下自己安装路径)
>listen-client-urls:http://192.168.10.128:2379,http://127.0.0.1:2379 (ip地址192.168.10.128,是自己本机地址)
>advertise-client-urls:http:/192.168.10.128:2379,http://127.0.0.1:2379 (192.168.10.128,本机IP地址)
>listen-peer-urls:http://192.168.108.128:2380(192.168.10.128,本机IP地址)
>initial-advertise-peer-urls:http://192.168.108.128:2380 (192.168.10.128,本机IP地址)
>initial-cluster:etcd-1=http://192.168.108.128:2380,etcd-2=http://192.168.108.129:2380(这个是配置集群ip,有几台配置几台IP地址)
>initial-cluster-token:etcd-cluster-token
>initial-cluster-state:new
完成配置、启动
查看版本号
>cd /opt/etcd-v3.3.10/
>./etcdctl version
启动:
$./etcd --config-file=/etc/etcd/conf.yml
查看集群成员信息:
$./etcdctl member list
查看集群状态(leader节点):
$./stcdctl cluster-health
查看leader状态:
$curl http://127.0.0.1:2379/v2/stats/leader
查看自己的状态:
$cur http://127.0.0.1:2379/v2/stats/self
四.主要命令:
1>键值写入与读取
$./etcdctl set /message Hello (key是message valus是Hello)
$./etcdctl get /message
$./etcdctl get mess -prefix (后面加上-frefix, 模糊查询已key mess开头查询)
$./etcdctl rm /message (删除key)
2>过期时间
$ ./etcdctl set -ttl 10 /message Hello (设置10秒)
3>观察者
在一个终端:
$ cur http://127.0.0.1:2379/v2/keys/foo?wait=true
该终端会进入等待返回状态
然后在另一个终端去改变它的值
$ cur hrrp://127.0.0.1:2379/v2/keys/foo -XPUT -d value =bar
4> 原子操作
当条件成立时设置key值
$ curl http://127.0.0.1:2379/v2/keys/foo?prevExist=false -XPUT -d value =three
支持的判断条件 :prevValue,prevlndex,preExist
当条件成立时删除 key
$curl http://127.0.0.1:2379/v2/keys/foo?preValue=two -XDELETE
支持的判断条件有:prevValue,prevlndex