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查询数据都需要使用认证文件,即上述格式。