准备条件

2台linux系统的虚拟机作etcd集群节点,其ip地址能够互相ping通(本文使用的镜像为:CentOS-8.2.2004-x86_64-minimal.iso)

集群节点分别安装好etcd服务(本文使用的rpm包为:etcd-3.2.21-2.el8.x86_64.rpm

创建集群

配置文件的修改

etcd集群的创建通过修改配置文件/etc/etcd/etcd.conf实现,修改项主要包括

1.ETCD_DATA_DIR                                           

保存数据的目录

2.ETCD_LISTEN_PEER_URLS

监听peer(其他集群节点)与自己通信的地址

3.ETCD_LISTEN_CLIENT_URLS

监听本节点客户端与自己通信的地址

4.ETCD_NAME

集群节点的名字

5.ETCD_INITIAL_ADVERTISE_PEER_URLS

通告其他节点与本节点通信的地址,相当于集群内部的管理地址

6.ETCD_ADVERTISE_CLIENT_URLS

通告其他节点客户端与本节点通信的地址

7.ETCD_INITIAL_CLUSTER

集群内所有节点的etcd服务的通信地址

8.ETCD_INITIAL_CLUSTER_TOKEN

集群唯一标志,具有相同token的节点视为在同一个集群内

9.ETCD_INITIAL_CLUSTER_STATE

集群初始化的方式,如果集群不存在,则为new

说明:

1.需要在集群的每个节点上进行配置文件的修改

2.本节点的etcd客户端默认通过http://127.0.0.1:2379(http://localhost:2379)访问etcd服务,所以ETCD_LISTEN_CLIENT_URLS一般要包含两个URL,http://127.0.0.1:2379和一个其他节点客户端访问本节点etcd服务的URL,也就是ETCD_ADVERTISE_CLIENT_URLS

有的教程里将ETCD_LISTEN_CLIENT_URLS直接设为:http://0.0.0.0:2379,表示监听本节点上所有ip的2379端口

3.ETCD_INITIAL_CLUSTER要包含集群所有节点的管理地址,例如本文两台节点,可以设置为ETCD_INITIAL_CLUSTER="etcd-01=http://192.168.52.129:2380,etcd-02=http://192.168.52.130:2380" (etcd-01,etcd-02分别表示节点名称,与ETCD_NAME对应)

下面是在名为etcd-01,IP地址为192.168.52.129的节点上修改后的etcd.conf,另一台节点可以对应的修改。

#[Member]
#ETCD_CORS=""
ETCD_DATA_DIR="/var/lib/etcd/etcd-01.etcd"                                                                 
#ETCD_WAL_DIR=""
ETCD_LISTEN_PEER_URLS="http://192.168.52.129:2380"
ETCD_LISTEN_CLIENT_URLS="http://localhost:2379,http://192.168.52.129:2379"
#ETCD_MAX_SNAPSHOTS="5"
#ETCD_MAX_WALS="5"
ETCD_NAME="etcd-01"
#ETCD_SNAPSHOT_COUNT="100000"
#ETCD_HEARTBEAT_INTERVAL="100"
#ETCD_ELECTION_TIMEOUT="1000"
#ETCD_QUOTA_BACKEND_BYTES="0"
#ETCD_MAX_REQUEST_BYTES="1572864"
#ETCD_GRPC_KEEPALIVE_MIN_TIME="5s"
#ETCD_GRPC_KEEPALIVE_INTERVAL="2h0m0s"
#ETCD_GRPC_KEEPALIVE_TIMEOUT="20s"
#
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.52.129:2380"
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.52.129:2379"
#ETCD_DISCOVERY=""
#ETCD_DISCOVERY_FALLBACK="proxy"
#ETCD_DISCOVERY_PROXY=""
#ETCD_DISCOVERY_SRV=""
ETCD_INITIAL_CLUSTER="etcd-01=http://192.168.52.129:2380,etcd-02=http://192.168.52.130:2380"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-01"
ETCD_INITIAL_CLUSTER_STATE="new"
#ETCD_STRICT_RECONFIG_CHECK="true"
#ETCD_ENABLE_V2="true"
#
#[Proxy]
#ETCD_PROXY="off"
#ETCD_PROXY_FAILURE_WAIT="5000"
#ETCD_PROXY_REFRESH_INTERVAL="30000"
#ETCD_PROXY_DIAL_TIMEOUT="1000"
#ETCD_PROXY_WRITE_TIMEOUT="5000"
#ETCD_PROXY_READ_TIMEOUT="0"
#
#[Security]
#ETCD_CERT_FILE=""
#ETCD_KEY_FILE=""
#ETCD_CLIENT_CERT_AUTH="false"
#ETCD_TRUSTED_CA_FILE=""
#ETCD_AUTO_TLS="false"
#ETCD_PEER_CERT_FILE=""
#ETCD_PEER_KEY_FILE=""
#ETCD_PEER_CLIENT_CERT_AUTH="false"
#ETCD_PEER_TRUSTED_CA_FILE=""
#ETCD_PEER_AUTO_TLS="false"
#
#[Logging]
#ETCD_DEBUG="false"
#ETCD_LOG_PACKAGE_LEVELS=""
#ETCD_LOG_OUTPUT="default"
#
#[Unsafe]
#ETCD_FORCE_NEW_CLUSTER="false"
#
#[Version]
#ETCD_VERSION="false"
#ETCD_AUTO_COMPACTION_RETENTION="0"
#
#[Profiling]
#ETCD_ENABLE_PPROF="false"
#ETCD_METRICS="basic"
#
#[Auth]
#ETCD_AUTH_TOKEN="simple"

集群初始化

重启两个节点上的etcd服务,重启成功后

在etcd-01节点上查看集群节点信息

[shannon@AIW ~]$ etcdctl member list
1c9f8342988eb370: name=etcd-02 peerURLs=http://192.168.52.130:2380 clientURLs=http://192.168.52.130:2379 isLeader=false
b948916647744835: name=etcd-01 peerURLs=http://192.168.52.129:2380 clientURLs=http://192.168.52.129:2379 isLeader=true

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐