搭建etcd集群,python调etcd

发布时间:2019-09-13 09:31:32编辑:auto阅读(2133)

    安装etcd集群:


    node1:192.168.133.140 

    node2:192.168.133.141 

    node3:192.168.133.142


    1,安装ntp服务:

    yum install ntp

    启动ntp服务

    systenctl start ntp


    安装etcd

    yum install -y etcd-3.2.5-1.el7.x86_64


    配置etcd

    编辑配置文件

    vim /etc/etcd/etcd.conf

    修改内容如下:

    # [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集群 并设置开机启动

    systemctl start etcd && systemctl enable etcd



    python调etcd的接口

    安装etcd3的模块

    pip install etcd3
    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

关键字