Etcd集群部署小结

坚强是说给别人听的谎言 提交于 2020-02-26 04:48:24

etcd集群模式

这里的集群模式是指完全集群模式,当然也可以在单机上通过不同的端口,部署伪集群模式,只是那样做只适合测试环境,生产环境考虑到可用性的话需要将etcd实例分布到不同的主机上,这里集群搭建有三种方式,分布是静态配置,etcd发现,dns发现
下面将在以下三台主机上搭建etcd集群,
etcd0 192.168.115.136
etcd1 192.168.115.137
etcd2 192.168.115.138

在每个节点上:

yum install etcd -y
ssh-keygen -t rsa
yum -y install openssh-clients
ssh-copy-id -i ~/.ssh/id_rsa.pub node1
ssh-copy-id -i ~/.ssh/id_rsa.pub node2
ssh-copy-id -i ~/.ssh/id_rsa.pub node3

2.1 配置项说明
--name
#etcd集群中的节点名,这里可以随意,可区分且不重复就行  
--listen-peer-urls
#监听的用于节点之间通信的url,可监听多个,集群内部将通过这些url进行数据交互(如选举,数据同步等)
--initial-advertise-peer-urls 
#建议用于节点之间通信的url,节点间将以该值进行通信。
--listen-client-urls
#监听的用于客户端通信的url,同样可以监听多个。
--advertise-client-urls
#建议使用的客户端通信url,该值用于etcd代理或etcd成员与etcd节点通信。
--initial-cluster-token etcd-cluster-1
#节点的token值,设置该值后集群将生成唯一id,并为每个节点也生成唯一id,当使用相同配置文件再启动一个集群时,只要该token值不一样,etcd集群就不会相互影响。
--initial-cluster
#集群中所有的initial-advertise-peer-urls 的合集
--initial-cluster-state new
#新建集群的标志

2.2 静态配置
静态配置主要预先将集群的配置信息分配好,然后将集群分布启动,集群将根据配置信息组成集群。这里按如下的配置信息分别启动三个etcd。
tee /etc/etcd/etcd.conf <<-'EOF'
ETCD_NAME=etcd01
ETCD_DATA_DIR="/var/lib/etcd/etcd01"
ETCD_LISTEN_PEER_URLS="http://192.168.115.136:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.115.136:2379,http://127.0.0.1:2379"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.115.136:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.115.136:2379"
ETCD_INITIAL_CLUSTER_STATE="new"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-1"
ETCD_INITIAL_CLUSTER="etcd01=http://192.168.115.136:2380,etcd02=http://192.168.115.137:2380,etcd03=http://192.168.115.138:2380"
EOF

tee /etc/etcd/etcd.conf <<-'EOF'
ETCD_NAME=etcd02
ETCD_DATA_DIR="/var/lib/etcd/etcd02"
ETCD_LISTEN_PEER_URLS="http://192.168.115.137:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.115.137:2379,http://127.0.0.1:2379"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.115.137:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.115.137:2379"
ETCD_INITIAL_CLUSTER_STATE="new"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-1"
ETCD_INITIAL_CLUSTER="etcd01=http://192.168.115.136:2380,etcd02=http://192.168.115.137:2380,etcd03=http://192.168.115.138:2380"
EOF

tee /etc/etcd/etcd.conf <<-'EOF'
ETCD_NAME=etcd03
ETCD_DATA_DIR="/var/lib/etcd/etcd03"
ETCD_LISTEN_PEER_URLS="http://192.168.115.138:2380"
ETCD_LISTEN_CLIENT_URLS="http://192.168.115.138:2379,http://127.0.0.1:2379"
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.115.138:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.115.138:2379"
ETCD_INITIAL_CLUSTER_STATE="new"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-1"
ETCD_INITIAL_CLUSTER="etcd01=http://192.168.115.136:2380,etcd02=http://192.168.115.137:2380,etcd03=http://192.168.115.138:2380"
EOF
按如上配置分别启动集群,启动集群后,将会进入集群选举状态,若出现大量超时,则需要检查主机的防火墙是否关闭,或主机之间是否能通过2380端口通信,集群建立后通过以下命令检查集群状态。

查看集群成员
[root@node1]# etcdctl  member list
4c6e3cdbe11da35: name=etcd03 peerURLs=http://192.168.115.138:2380 clientURLs=http://192.168.115.138:2379 isLeader=false
165e1d628eb37488: name=etcd02 peerURLs=http://192.168.115.137:2380 clientURLs=http://192.168.115.137:2379 isLeader=true
904e760d8f0aa918: name=etcd01 peerURLs=http://192.168.115.136:2380 clientURLs=http://192.168.115.136:2379 isLeader=false

检查集群健康状态
[root@node1]# etcdctl cluster-health
member 4c6e3cdbe11da35 is healthy: got healthy result from http://192.168.115.138:2379
member 165e1d628eb37488 is healthy: got healthy result from http://192.168.115.137:2379
member 904e760d8f0aa918 is healthy: got healthy result from http://192.168.115.136:2379
cluster is healthy
如上集群搭建成功。

————————————————
版权声明:本文为CSDN博主「小t飞侠」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/zwj52pk/article/details/82682092

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!