安装etcd集群:
node1:192.168.133.140
node2:192.168.133.141
node3:192.168.133.142
1,安装ntp服务:
yum install ntp
启动ntp服务
代码语言:javascript复制systenctl start ntp
安装etcd
代码语言:javascript复制yum install -y etcd-3.2.5-1.el7.x86_64
配置etcd
编辑配置文件
代码语言:javascript复制vim /etc/etcd/etcd.conf
修改内容如下:
代码语言:javascript复制# [member]
ETCD_NAME=master1 #本机的主机名
ETCD_DATA_DIR="/var/lib/etcd/default.etcd" #etcd的数据存储路径
#ETCD_WAL_DIR=""
#ETCD_SNAPSHOT_COUNT="10000"
#ETCD_HEARTBEAT_INTERVAL="100"
#ETCD_ELECTION_TIMEOUT="1000"
ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380" #监听其他etcd实例的地址
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379,http://0.0.0.0:4001" #监听etcd客户端的地址
#ETCD_MAX_SNAPSHOTS="5"
#ETCD_MAX_WALS="5"
#ETCD_CORS=""
#
#[cluster]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.133.140:2380" #通知其他etcd实例地址
# if you use different ETCD_NAME (e.g. test), set ETCD_INITIAL_CLUSTER value for this name, i.e. "test=http://..."
ETCD_INITIAL_CLUSTER="master1=http://192.168.133.140:2380,master2=http://192.168.133.141:2380,master3=http://192.168.133.142:2380" #初始化集群内节点地址
ETCD_INITIAL_CLUSTER_STATE="new" # 初始化集群状态,new表示新建
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster" # 初始化集群token
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.133.140:2379,http://192.168.133.140:4001" # 定义client 广播端口,此处必须填写相应主机的 IP,不能填写 0.0.0.0,否则 etcd client 获取不了 etcd cluster 中的主机
#ETCD_DISCOVERY=""
#ETCD_DISCOVERY_SRV=""
#ETCD_DISCOVERY_FALLBACK="proxy"
#ETCD_DISCOVERY_PROXY=""
#ETCD_STRICT_RECONFIG_CHECK="false"
ETCD_AUTO_COMPACTION_RETENTION="1" #内部调优
#ETCD_ENABLE_V2="true"
Postil:其余两个主机只需要修改红色部分,其他地方保持和我一样就可以了。
启动etcd集群 并设置开机启动
代码语言:javascript复制systemctl start etcd && systemctl enable etcd
python调etcd的接口
安装etcd3的模块
代码语言:javascript复制pip install etcd3
代码语言:javascript复制import etcd3
#往etcd中存数据
client = etcd3.client(host='192.168.133.140') #连接etcd
r = client.put('aaa', 'qweqwe') #往etcd中存键值
b = client.get('aaa') #查看etcd中的键值
vents_iterator, cancel = client.watch('aaa') #监听etcd中aaa键 是否发生改变,
print(event).value