环境介绍
- 示意拓扑
- etcd介绍
Kubernetes的存储层使用的是Etcd。Etcd是CoreOS开源的一个高可用强一致性的分布式存储服务,Kubernetes使用Etcd作为数据存储后端,把需要记录的pod、rc、service等资源信息存储在Etcd中。
Etcd使用raft算法将一组主机组成集群,raft 集群中的每个节点都可以根据集群运行的情况在三种状态间切换:follower, candidate 与 leader。leader 和 follower 之间保持心跳。如果follower在一段时间内没有收到来自leader的心跳,就会转为candidate,发出新的选主请求。
etcd1 A 10.10.84.120
etcd2 A 10.10.84.121
etcd3 A 10.10.84.122
etcd集群部署
- 修改配置文件/etc/etcd/etcd.conf
# [member]
ETCD_NAME=etcd1
ETCD_DATA_DIR="/var/lib/etcd/"
ETCD_LISTEN_PEER_URLS="http://10.10.84.120:2380"
ETCD_LISTEN_CLIENT_URLS="http://localhost:2379,http://10.10.84.120:2379"
#[cluster]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.10.84.120:2380"
ETCD_INITIAL_CLUSTER="etcd1=http://10.10.84.120:2380,etcd2=http://10.10.84.121:2380,etcd3=http://10.10.84.122:2380"
ETCD_INITIAL_CLUSTER_STATE="new"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379,http://10.10.84.120:2379"
- 查看集群状态
[root@etcd1 ~]# etcdctl cluster-health
[root@etcd1 ~]# etcdctl member list