k8s v1.9.9 二进制部署 (3)创建高可用etcd集群
1.etcd集群认证文件确认
#确认三个节点目录下都有下面文件。
$ll /etc/kubernetes/ssl/kubernetes*
-rw------- 1 root root 1675 Dec 28 12:24 /etc/kubernetes/ssl/kubernetes-key.pem
-rw-r--r-- 1 root root 1627 Dec 28 12:24 /etc/kubernetes/ssl/kubernetes.pem
2.安装Etcd
使用yum安装etcd服务。
#yum info etcd
Version : 3.3.11 我这里的版本。
$yum -y install etcd
3.创建etcd的systemd unit文件
注:
1、IP除了initial-cluster 配置项是配置集群内3个地址的IP外,其他IP均为本机的IP。
2、配置里--name必须与--initial-cluster的名称相对应。
3、通过不同方式安装的软件Execstart配置项下的程序启动命令路径注意修改。
4、WorkingDirectory工作目录需要实现创建,否则启动会报错,yum安装的方式是自动创建的。
3.1.master131节点:
$cat > /usr/lib/systemd/system/etcd.service <<eof
[Unit]
Description=Etcd Server
After=network.target
After=network-online.target
Wants=network-online.target
Documentation=https://github.com/coreos
[Service]
Type=notify
WorkingDirectory=/var/lib/etcd/
EnvironmentFile=-/etc/etcd/etcd.conf
https://192.168.7.131:2379 --initial-cluster-token etcd-cluster-0 --initial-cluster etcd1=https://192.168.7.131:2380,etcd2=https://192.168.7.132:2380,etcd3=https://192.168.7.133:2380 --initial-cluster-state new --data-dir=/var/lib/etcd
Restart=on-failure
RestartSec=5
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
eof
3.2 .node132节点
$cat > /usr/lib/systemd/system/etcd.service <<eof
[Unit]
Description=Etcd Server
After=network.target
After=network-online.target
Wants=network-online.target
Documentation=https://github.com/coreos
[Service]
Type=notify
WorkingDirectory=/var/lib/etcd/
EnvironmentFile=-/etc/etcd/etcd.conf
https://192.168.7.132:2379 --initial-cluster-token etcd-cluster-0 --initial-cluster etcd1=https://192.168.7.131:2380,etcd2=https://192.168.7.132:2380,etcd3=https://192.168.7.133:2380 --initial-cluster-state new --data-dir=/var/lib/etcd
Restart=on-failure
RestartSec=5
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
eof
3.3 .node133节点
$cat > /usr/lib/systemd/system/etcd.service <<eof
[Unit]
Description=Etcd Server
After=network.target
After=network-online.target
Wants=network-online.target
Documentation=https://github.com/coreos
[Service]
Type=notify
WorkingDirectory=/var/lib/etcd/
EnvironmentFile=-/etc/etcd/etcd.conf
https://192.168.7.133:2379 --initial-cluster-token etcd-cluster-0 --initial-cluster etcd1=https://192.168.7.131:2380,etcd2=https://192.168.7.132:2380,etcd3=https://192.168.7.133:2380 --initial-cluster-state new --data-dir=/var/lib/etcd
Restart=on-failure
RestartSec=5
LimitNOFILE=65536
[Install]
WantedBy=multi-user.target
eof
4.创建etcd配置文件
注:
1、IP地址替换为本机的即可。
ETCD_NAME按照etcd系统服务里面的配置一一对应。
4.1.master131节点:
$cat > /etc/etcd/etcd.conf <<eof
# [member]
ETCD_NAME=etcd1
#[cluster]
eof
4.2 .node132节点:
$cat > /etc/etcd/etcd.conf <<eof
# [member]
ETCD_NAME=etcd2
#[cluster]
eof
4.3 .node133节点:
$cat > /etc/etcd/etcd.conf <<eof
# [member]
ETCD_NAME=etcd3
#[cluster]
eof
5.开机启动及启动etcd
systemctl daemon-reload
systemctl enable etcd
systemctl start etcd
systemctl status etcd
6.检测集群工作情况
在任意一个节点,master或者node都可以,执行以下命令
$etcdctl
--ca-file=/etc/kubernetes/ssl/ca.pem
--cert-file=/etc/kubernetes/ssl/kubernetes.pem
--key-file=/etc/kubernetes/ssl/kubernetes-key.pem
cluster-health
如果输出类似如下如的情况,代表成功:
注:
1、建议所有节点都运行一次检测。
2、以后使用etcd查询数据都需要使用认证文件,即上述格式。