04-高可用Kubernetes集群(测试环境)-部署Etcd集群

1. 安装前准备

关闭各节点的selinux,设置SELINUX=disabled,重启节点。各节点关闭并禁止开机启动防火墙.

# 关闭SELINUX
vi /etc/selinux/config  
reboot
setenforce 0

# 关闭防火墙并禁止开机启动
systemctl stop firewalld
systemctl disable firewalld

在这里插入图片描述
在这里插入图片描述

2. 下载etcd

etcd二进制包下载地址:https://github.com/etcd-io/etcd/releases,这里使用 etcd-v3.3.10-linux-amd64.tar.gz,下载后解压缩。

[root@master01 k8s]# tar zxf etcd-v3.3.10-linux-amd64.tar.gz

3. 安装etcd

创建安装目录, 将etcdctl etcd拷贝至对应目录,命令如下:

mkdir /opt/etcd/{bin,cfg,ssl} -p
cd etcd-v3.3.10-linux-amd64/
mv etcdctl etcd /opt/etcd/bin

在这里插入图片描述
拷贝证书到指定目录, 执行安装脚本etcd.sh

cd k8s
chmod +x etcd.sh

cp etcd-cert/ca*pem /opt/etcd/ssl/
cp etcd-cert/server*pem /opt/etcd/ssl/
./etcd.sh etcd01 192.168.1.72 etcd02=https://192.168.1.95:2380,etcd03=https://192.168.1.88:2380

etcd.sh

#!/bin/bash
# example: ./etcd.sh etcd01 192.168.1.10 etcd02=https://192.168.1.11:2380,etcd03=https://192.168.1.12:2380

ETCD_NAME=$1
ETCD_IP=$2
ETCD_CLUSTER=$3

WORK_DIR=/opt/etcd

cat <<EOF >$WORK_DIR/cfg/etcd
#[Member]
ETCD_NAME="${ETCD_NAME}"
ETCD_DATA_DIR="/var/lib/etcd/default.etcd"
ETCD_LISTEN_PEER_URLS="https://${ETCD_IP}:2380"
ETCD_LISTEN_CLIENT_URLS="https://${ETCD_IP}:2379"

#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="https://${ETCD_IP}:2380"
ETCD_ADVERTISE_CLIENT_URLS="https://${ETCD_IP}:2379"
ETCD_INITIAL_CLUSTER="etcd01=https://${ETCD_IP}:2380,${ETCD_CLUSTER}"
ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new"
EOF

cat <<EOF >/usr/lib/systemd/system/etcd.service
[Unit]
Description=Etcd Server
After=network.target
After=network-online.target
Wants=network-online.target

[Service]
Type=notify
EnvironmentFile=${WORK_DIR}/cfg/etcd
ExecStart=${WORK_DIR}/bin/etcd \
--name=\${ETCD_NAME} \
--data-dir=\${ETCD_DATA_DIR} \
--listen-peer-urls=\${ETCD_LISTEN_PEER_URLS} \
--listen-client-urls=\${ETCD_LISTEN_CLIENT_URLS},http://127.0.0.1:2379 \
--advertise-client-urls=\${ETCD_ADVERTISE_CLIENT_URLS} \
--initial-advertise-peer-urls=\${ETCD_INITIAL_ADVERTISE_PEER_URLS} \
--initial-cluster=\${ETCD_INITIAL_CLUSTER} \
--initial-cluster-token=\${ETCD_INITIAL_CLUSTER_TOKEN} \
--initial-cluster-state=new \
--cert-file=${WORK_DIR}/ssl/server.pem \
--key-file=${WORK_DIR}/ssl/server-key.pem \
--peer-cert-file=${WORK_DIR}/ssl/server.pem \
--peer-key-file=${WORK_DIR}/ssl/server-key.pem \
--trusted-ca-file=${WORK_DIR}/ssl/ca.pem \
--peer-trusted-ca-file=${WORK_DIR}/ssl/ca.pem
Restart=on-failure
LimitNOFILE=65536

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable etcd
systemctl restart etcd


拷贝etcd相关文件到其他两个etcd节点(node01和node02)

scp -r /opt/etcd/ root@192.168.1.95:/opt
scp -r /opt/etcd/ root@192.168.1.88:/opt
scp /usr/lib/systemd/system/etcd.service root@192.168.1.95:/usr/lib/systemd/system/
scp /usr/lib/systemd/system/etcd.service root@192.168.1.88:/usr/lib/systemd/system/

修改node01和node02节点上的/opt/etcd/cfg/etcd,对应的名称和IP,改为对应名称和本机IP。其中node01节点上修改如下,node02节点做类似操作。

vi /opt/etcd/cfg/etcd

在这里插入图片描述

启动etcd, 并将etcd设置为开机自启动

systemctl daemon-reload
systemctl enable etcd
systemctl start etcd

4. 检查集群

在各节点均可检查,

# 进入证书目录
cd /opt/etcd/ssl

# 集群健康情况
/opt/etcd/bin/etcdctl \
--ca-file=ca.pem --cert-file=server.pem --key-file=server-key.pem \
--endpoints="https://192.168.1.72:2379,https://192.168.1.95:2379,https://192.168.1.88:2379" \
cluster-health

# 集群成员
/opt/etcd/bin/etcdctl \
--ca-file=ca.pem --cert-file=server.pem --key-file=server-key.pem \
--endpoints="https://192.168.1.72:2379,https://192.168.1.95:2379,https://192.168.1.88:2379" \
member list

在这里插入图片描述
集群各节点状态为healthy, leader 为etcd01. 至此, etcd三节点集群部署成功.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

逍遥俊子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值