kebernetes集群——部署ETCD集群

kebernetes集群——部署ETCD集群

环境:
两台虚拟机:
k8s-master:192.168.3.138
k8s-node1:192.168.3.178

操作系统:redhat-7.3_x86_64
ETCD:3.3.8-linux-amd64

一、下载ETCD至服务器
1、从ETCD官网下载二进制包,本例使用的包为etcd-v3.3.8-linux-amd64.tar.gz
下载地址:https://github.com/coreos/etcd/releases/
2、将二进制包解压至/usr/local/。
目录结构如下图。注:datadir及etcd.conf为后续步骤添加
kebernetes集群——部署ETCD集群_第1张图片

二、配置ETCD及systemd
1、创建/usr/local/etcd-v3.3.8-linux-amd64/etcd.conf文件,内容如下:

# [member config]
# etcd节点名称
ETCD_NAME="k8s-master"
# etcd节点的数据存储目录
ETCD_DATA_DIR="/usr/local/etcd-v3.3.8-linux-amd64/datadir"
# 用于与其他节点通讯的地址
ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380"
# 对外提供服务的地址。如果配置了这个值,必须同时设置ETCD_ADVERTISE_CLIENT_URLS,否则无法启动ETCD
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"

# [cluster config]
# 对外公告的该节点的服务地址,这个值会告诉集群中的其他节点
ETCD_ADVERTISE_CLIENT_URLS="http://192.168.3.138:2379"
# 对外公告的供其他节点通讯用的地址
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://192.168.3.138:2380"
# 集群初始成员列表
ETCD_INITIAL_CLUSTER="k8s-master=http://192.168.3.138:2380,k8s-node1=http://192.168.3.178:2380"
# 集群初始状态
ETCD_INITIAL_CLUSTER_STATE="new"
# 集群名称
ETCD_INITIAL_CLUSTER_TOKEN="k8s-etcd-cluster"

2、创建并编辑/usr/lib/systemd/system/etcd.service文件,服务器k8s-node1上的文件内容如下:

[Unit]
Description=Etcd Server
Documentation=https://github.com/coreos/etcd
After=network-online.target
Wants=network-online.target

[Service]
Type=notify
WorkingDirectory=/usr/local/etcd-v3.3.8-linux-amd64
EnvironmentFile=/usr/local/etcd-v3.3.8-linux-amd64/etcd.conf
ExecStart=/bin/bash -c "GOMAXPROCS=$(nproc) /usr/local/etcd-v3.3.8-linux-amd64/etcd"
Restart=on-failure
RestartSec=10s

[Install]
WantedBy=multi-user.target

说明:此文件的作用及配置项的含义,请百度“centos7 systemd”相关知识。
3、将ETCD设置为开机启动

systemctl enable etcd.service

三、启动ETCD
依次在两台服务器上启动ETCD。

systemctl start etcd.service

注意:启动第一台服务的ETCD时,因为第二台服务器的ETCD没有启动,因此第一个启动ETCD的节点会一直卡着直到超时,需要在第一个启动的节点超时前启动第二个节点。

四、查看ETCD各节点状态

/usr/local/etcd-v3.3.8-linux-amd64/etcdctl member list

结果如图:
这里写图片描述

/usr/local/etcd-v3.3.8-linux-amd64/etcdctl cluster-health

结果如图:
这里写图片描述

你可能感兴趣的:(kubernetes)