目录

一.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