etcd高可用集群

ETCD参数说明: 

● –data-dir 指定节点的数据存储目录,若不指定,则默认是当前目录。这些数据包括节点ID,集群ID,集群初始化配置,Snapshot文件,若未指 定–wal-dir,还会存储WAL文件 html

● –wal-dir 指定节点的was文件存储目录,若指定了该参数,wal文件会和其余数据文件分开存储 vim

● –name 节点名称 服务器

● –initial-advertise-peer-urls 告知集群其余节点的URL,tcp2380端口用于集群通讯 app

● –listen-peer-urls 监听URL,用于与其余节点通信 tcp

● –advertise-client-urls 告知客户端的URL, 也就是服务的URL,tcp2379端口用于监听客户端请求 ide

● –initial-cluster-token 集群的ID url

● –initial-cluster 集群中全部节点 spa

● –initial-cluster-state 集群状态,new为新建立集群,existing为已存在的集群orm


建立etcd高可用集群:htm

kuberntes 系统使用 etcd 存储全部数据,本文档介绍部署一个三节点高可用 etcd 集群的步骤,这三个节点复用 kubernetes master 机器

搭建etcd集群须要注意的是etcd最少须要三台才能发挥其高可用的功能,由于etcd集群内部使用的是选举制度,经过内部选举一台Leader,而若是当集群内部主机少于三台时,etcdLeader选举功能就出现问题,致使Leader选举失败,从而etcd不能正常与外界通信

yum -y install etcd

vim /etc/etcd/etcd.conf

#[Member]

ETCD_NAME="etcd1"

ETCD_DATA_DIR="/var/lib/etcd/default.etcd"

ETCD_LISTEN_PEER_URLS="http://当前服务器IP:2380"

ETCD_LISTEN_CLIENT_URLS="http://当前服务器IP:2379,http://127.0.0.1:2379"

#[Clustering]

ETCD_INITIAL_ADVERTISE_PEER_URLS="http://当前服务器IP:2380"

ETCD_ADVERTISE_CLIENT_URLS="http://当前服务器IP:2379"

ETCD_INITIAL_CLUSTER="etcd1=http://192.168.10.9:2380,etcd2=http://192.168.10.10:2380,etcd3=http://192.168.10.11:2380"

ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"

ETCD_INITIAL_CLUSTER_STATE="new"

ETCD TLS 配置的坑Etcd 各个节点间必须保证时钟同步,不然会形成启动失败等错误

 vim /usr/lib/systemd/system/etcd.service                     //修改etcd启动文件

WorkingDirectory=/var/lib/etcd/

EnvironmentFile=-/etc/etcd/etcd.conf

指定 etcd 的工做目录为 /var/lib/etcd,数据目录为 /var/lib/etcd,需在启动服务前建立这两个目录;

注意三台etcd的配置文件中ETCD_NAME的配置,这里三台分别设置的是etcd1etcd2etcd3

启动etcd服务:

待三台etcd都搭建完成以后,可依次启动(在etcd集群中若是只单独启动一台etcd会出现报错)

[root@master01 ~]# systemctl daemon-reload

[root@master01 ~]# systemctl start etcd

[root@master01 ~]# systemctl enable etcd

验证etcd是否正确启动:

[root@test ~]# etcdctl cluster-health

member 8c632555af4d958d is healthy: got healthy result from http://192.168.10.10:2379

member bc34c6bd673bdf9f is healthy: got healthy result from http://192.168.10.11:2379

member ec065b41856af137 is healthy: got healthy result from http://192.168.10.9:2379

cluster is healthy

[root@test ~]#集群启动正常

添加证书后的集群验证

export ETCDCTL_API=3

etcdctl --cacert=/etc/etcd/ssl/etcd-root-ca.pem --cert=/etc/etcd/ssl/etcd.pem --key=/etc/etcd/ssl/etcd-key.pem --endpoints=https://192.168.10.9:2379,https://192.168.10.10:2379,https://192.168.10.11:2379 cluster-health

特别提醒:使用前,务必设置环境变量 ETCDCTL_API=3

在 /etc/profile 中加入如下内容:

export ETCDCTL_API=3

注意:若是不设置 ETCDCTL_API=3,则默认是的API版本是2:

相关文章
相关标签/搜索