工作中的点点滴滴 2020-06-01
etcd 是 coreOs 团队于 2013 年 6 发起的开源项目, 他的目标是构建一个高可用的分布式键值(key-value)数据库. etcd 内部采用 raft 协议作为一致性算法, etcd基于 go 语言实现.
项目地址: https://github.com/coreos/etcd/
推荐文章: https://blog.csdn.net/bbwangj/article/details/82584988
etcd 集群 是一个分布式系统. 使用 Raft 协议来维护集群内各个节点状态的一致性.
主机状态分为: Leader, Follower, Candidate
当集群初始化的时候,每个节点都是 Follower 角色.
通过心跳与其他节点同步数据.当 Follower 在一定时间内没有收到来自主节点的心跳,会将自己角色变为 Candidate ,并发起一次选主投票.
配置 etcd 集群,建议尽可能是奇数个节点,而不要是偶数节点.
1. 安装 etcd [ ~]# yum install etcd -y # 2. 修改配置文件 [ ~]# cat /etc/etcd/etcd.conf #[Member] # 数据目录 ETCD_DATA_DIR="/var/lib/etcd/cluster.etcd" # 集群通信的监听地址 ETCD_LISTEN_PEER_URLS="http://172.16.0.111:2380,http://localhost:2380" # 客户端的连接地址 ETCD_LISTEN_CLIENT_URLS="http://172.16.0.111:2379,http://localhost:2379" # 名字标识符 ETCD_NAME="test1" # 启动 etcd [ ~]# systemctl start etcd [ ~]# systemctl enable etcd # 3. 查看节点 [ ~]# etcdctl member list 8e9e05c52164694d: name=test1 peerURLs=http://localhost:2380 clientURLs=http://localhost:2379 isLeader=true # 4. 查看健康状态 [ ~]# etcdctl cluster-health member 8e9e05c52164694d is healthy: got healthy result from http://localhost:2379 cluster is healthy # 5. 操作 etcd [ ~]# etcdctl mkdir /test [ ~]# etcdctl ls / /test [ ~]# etcdctl rmdir /test
###host字段指定授权使用该证书的etcd节点IP或子网列表,需要将etcd集群的3个节点都添加其中。cp etcd-v3.3.13-linux-amd64/etcd* /opt/k8s/bin/