1、配置阿里源
将Debian/Ubuntu 或 CentOS/RHEL/Fedora Linux配置成阿里源。
1)Debian/Ubuntu
apt-get update && apt-get install -y apt-transport-httpscurl https://mirrors.aliyun.com/kubernetes/apt/doc/apt-key.gpg | apt-key add - cat </etc/apt/sources.list.d/kubernetes.listdeb https://mirrors.aliyun.com/kubernetes/apt/ kubernetes-xenial mainEOF
2)CentOS/RHEL/Fedora
cat </etc/yum.repos.d/kubernetes.repo[kubernetes]name=Kubernetesbaseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/enabled=1gpgcheck=1repo_gpgcheck=1gpgkey=https://mirrors.aliyun.com/kubernetes/yum/doc/yum-key.gpghttps://mirrors.aliyun.com/kubernetes/yum/doc/rpm-package-key.gpgEOF
下载地址:https://mirrors.aliyun.com/kubernetes/
注意:CentOS/RHEL/Fedora中需要关闭SELinux,使用setenforce 0
可以关闭
2、安装etcd
sudo yum install -y etcd
或者
sudo apt-get install -y etcd
3、修改etcd配置文件
添加用于监听其他etcd member的url和对外提供服务的地址。
d /etc/etcd/
cp etcd.conf etcd.conf.bak
vim etcd.conf
如机器IP为192.168.31.41,需要修改成配置如下:
ETCD_LISTEN_PEER_URLS="http://localhost:2380,http://192.168.31.41:2380"ETCD_LISTEN_CLIENT_URLS="http://localhost:2379,http://192.168.31.41:2379"
4、启动etcd服务及查看etcd集群相关信息
1)启动etcd服务
systemctl enable etcd --now
2)查看etcd集群相关信息
etcdctl member list
3)查看集群的健康状态
etcdctl cluster-health
5、配置远程etcd访问
etcdctl是etcd的客户端工具,可以在本机上查看信息,也可以远程到集群的其他节点查看。
1)在etcd1上修改配置文件,允许远程访问
vim /etc/etcd/etcd.conf
如机器IP为192.168.31.41,需要修改成配置如下:
ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379,http://192.168.31.41:2379"
2)重启etcd服务
systemctl restart etcd
3)安装etcd2
在etcd2上以同样的方式安装etcd,并执行如下的命令连接到etcd1上,并查看帮助信息:
etcdctl --endpoints http://192.168.31.41:2379 --help
注意:默认etcdctl使用的是版本2来管理etcd,可以通过设置环境变量的方式,指定使用版本3来管理etcd,会有更多功能,在etcd1和etcd2节点上,执行命令如下:
export ETCDCTL_API=3
可以在执行上面命令查看帮助信息。
如果需要取消环境变量设置,命令如下:
unset ETCDCTL_API
5、etcd获取或存储数据
如在etcd1上,设置key为k8s
,值为wonhero
,命令如下:
etcdctl put k8s wonhero
获取数据命令如下:
etcdctl get k8s
注意:etcd2上远程也可以,主要保证etcd1和etcd2上的版本一致,两个版本不可混用,主机状态 Leader
, Follower
, Candidate
。默认数据会发送到Leader
(2379
端口),然后Leader通过Raft协议(2380
端口)同步到Follower
。当集群初始化时候,每个节点都是Follower
角色,通过心跳与其他节点同步数据,当Follower
在一定时间内没有收到来自主节点的心跳,会将自己角色改变为Candidate
,并发起一次选主投票。配置etcd集群,建议尽可能是奇数个节点,而不要偶数个节点,否则在一定情况下可能会导致选举Leader
出现故障。