Quantcast
Channel: polygun2000的博客
Viewing all articles
Browse latest Browse all 55

etcd集群简要配置说明[收集整理而成]

$
0
0
三台主机:
node01 10.1.1.1
node02 10.1.1.2
node03 10.1.1.3

etcd会监听2379和2380两个端口,2379用于用户访问,2380用于集群通信,交换选举等信息。

为了性能,我们将etcd的数据文件存储在独立分区/etcd_data上。

通常为了安全会使用证书进行通信加密,我们的这个集群会跑在内网,为了性能,不使用证书,如需要配置证书,请见参考文档1。

0. 所有主机上编辑hosts文件
]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
10.1.1.1  node01
10.1.1.2  node02
10.1.1.3  node03

1. 在所有主机上安装etcd
]# yum install etcd

2. 所有主机上编辑etcd.conf配置文件

以node01为例,node02和node03对应修改即可。

]# cat /etc/etcd/etcd.conf

# [member]
ETCD_NAME=etcd-node01
ETCD_DATA_DIR=/etcd_data
#ETCD_WAL_DIR=""
#ETCD_SNAPSHOT_COUNTER="10000"
#ETCD_HEARTBEAT_INTERVAL="100"
#ETCD_ELECTION_TIMEOUT="1000"
#ETCD_MAX_SNAPSHOTS="5"
#ETCD_MAX_WALS="5"
#ETCD_CORS=""

#[cluster]
ETCD_INITIAL_CLUSTER="etcd-node01=http://node01:2380,etcd-node02=https://node02:2380,etcd-node03=https://node03:2380"
ETCD_INITIAL_CLUSTER_STATE=new

ETCD_INITIAL_ADVERTISE_PEER_URLS=http://node01:2380
ETCD_ADVERTISE_CLIENT_URLS=http://node01:2379

ETCD_LISTEN_PEER_URLS=http://node01:2380
ETCD_LISTEN_CLIENT_URLS="http://node01:2379"

#[proxy]
ETCD_PROXY="off"

-------------------
主要配置说明:

ETCD_NAME 节点名称,默认为default,本例中三台机器分别为:etcd-node01,etcd-node02,etcd-node03
ETCD_DATA_DIR 服务运行数据保存的路径,本例中指定独立分区,/etcd_data

ETCD_LISTEN_PEER_URLS 监听的同伴通信的地址,比如http://ip:2380,如果有多个,使用逗号分隔。需要所有节点都能够访问,所以不要使用 localhost!
ETCD_LISTEN_CLIENT_URLS   监听的客户端服务地址
ETCD_ADVERTISE_CLIENT_URLS   对外公告的该节点客户端监听地址,这个值会告诉集群中其他节点。
ETCD_INITIAL_ADVERTISE_PEER_URLS  对外公告的该节点同伴监听地址,这个值会告诉集群中其他节点

ETCD_INITIAL_CLUSTER 集群中所有节点的信息,格式为node1=http://ip1:2380,node2=http://ip2:2380,…,注意:这里的 node1 是节点的 --name 指定的名字;后面的 ip1:2380 是 --initial-advertise-peer-urls 指定的值。
ETCD_INITIAL_CLUSTER_STATE 新建集群的时候,这个值为 new;假如加入已经存在的集群,这个值为 existing。
ETCD_INITIAL_CLUSTER_TOKEN 集群的ID,多个集群的时候,每个集群的ID必须保持唯一,否则会引发不可知错误,可以访问 https://discovery.etcd.io/new 生成一个token。

3.启动etcd服务
]# systemctl start etcd

4.etcd集群状态确认
]# etcdctl member list
7bf3dc7e1bfc9229: name=etcd-node03 peerURLs=http://10.1.1.3:2380 clientURLs=http://10.1.1.3:2379 isLeader=true
b19e62a463d4b18e: name=etcd-node02 peerURLs=http://10.1.1.2:2380 clientURLs=http://10.1.1.2:2379 isLeader=false
b22cf29c2bebb484: name=etcd-node01 peerURLs=http://10.1.1.1:2380 clientURLs=http://10.1.1.1:2379 isLeader=false

]# etcdctl --endpoints http://10.1.1.1:2379 cluster-health

member 7bf3dc7e1bfc9229 is healthy: got healthy result from http://10.1.1.3:2379
member b19e62a463d4b18e is healthy: got healthy result from http://10.1.1.2:2379
member b22cf29c2bebb484 is healthy: got healthy result from http://10.1.1.1:2379

上述就是配置etcd集群的简要过程,关于故障修复,增加节点,数据备份等内容,见参考文档4.

参考文档:
1. http://cloudgeekz.com/1192/bootstrapping-etcd-cluster.html
2. https://qiita.com/hana_shin/items/602f98bd9b153d22e50c
3. https://www.cnblogs.com/xishuai/p/docker-etcd.html
4. http://www.cnblogs.com/breg/p/5728237.html

 

Viewing all articles
Browse latest Browse all 55

Trending Articles