etcd容器化部署并简单测试


etcd是一个基于raft算法的具体实现,一种开源的分布式统一键值存储,用于分布式系统或计算机集群的共享配置、服务发现和的调度协调。
etcd 有助于促进更加安全的自动更新,协调向主机调度的工作,并帮助设置容器的覆盖网络。
etcd 是许多其他项目的核心组件,可以理解为分布式http api接口数据库(可以和zookeeper和redis做为比较)。

示范运行v3版本etcd:
运行docker单节点

#设置本机ip
export NODE1=192.168.1.21
#配置数据存储卷
docker volume create --name etcd-data
export DATA_DIR="etcd-data"
#运行镜像仓库

REGISTRY=quay.io/coreos/etcd
#设置镜像仓库
REGISTRY=gcr.io/etcd-development/etcd
#运行容器
docker run \
  -p 2379:2379 \
  -p 2380:2380 \
  --volume=${DATA_DIR}:/etcd-data \
  --name etcd ${REGISTRY}:latest \
  /usr/local/bin/etcd \
  --data-dir=/etcd-data --name node1 \
  --initial-advertise-peer-urls http://${NODE1}:2380 --listen-peer-urls http://0.0.0.0:2380 \
  --advertise-client-urls http://${NODE1}:2379 --listen-client-urls http://0.0.0.0:2379 \
  --initial-cluster node1=http://${NODE1}:2380

#运行测试
#列出memeber
etcdctl --endpoints=http://${NODE1}:2379 member list

v2版本etcd单机部署:

export HostIP="172.19.100.45"
docker run -itd -v /usr/share/ca-certificates/:/etc/ssl/certs -p 4001:4001 -p 2380:2380 -p 2379:2379 \
 --name etcd quay.io/coreos/etcd:v2.3.8 \
 -name etcd0 \
 -advertise-client-urls http://${HostIP}:2379,http://${HostIP}:4001 \
 -listen-client-urls http://0.0.0.0:2379,http://0.0.0.0:4001 \
 -initial-advertise-peer-urls http://${HostIP}:2380 \
 -listen-peer-urls http://0.0.0.0:2380 \
 -initial-cluster-token etcd-cluster-1 \
 -initial-cluster etcd0=http://${HostIP}:2380 \
 -initial-cluster-state new

简单实用用:

#获取所有key
curl http://127.0.0.1:2379/v2/keys/
#删除key
curl http://127.0.0.1:2379/v2/keys/afile -XDELETE
#设置key的值
curl http://127.0.0.1:2379/v2/keys/message -XPUT -d value="Hello world"
#查看某个版本值
curl 'http://127.0.0.1:2379/v2/keys/foo?wait=true&waitIndex=10'
#把文件内容存入key
curl http://127.0.0.1:2379/v2/keys/afile -XPUT --data-urlencode value@d.txt
#查看某key的值
curl http://127.0.0.1:2379/v2/keys/afile
Devops