etcd高可用集群部署

etcd高可用集群部署在生产环境中 为了整个集群的高可用 etcd 正常都会集群部署 避免单点故障

大家好,欢迎来到IT知识分享网。

在生产环境中,为了整个集群的高可用,etcd 正常都会集群部署,避免单点故障。 etcd 集群的启动有以下三种机制:

静态启动 预先已知etcd集群中有哪些节点,在启动时通过–initial-cluster参数直接指定好etcd的各个节点地址 etcd 动态发现 静态配置前提是在搭建集群之前已经提前知道各节点的信息,而实际应用中可能存在预 先并不知道各节点ip的情况,这时可通过已经搭建的etcd来辅助搭建新的etcd集群。通过 已有的etcd集群作为数据交互点,然后在扩展新的集群时,实现通过已有集群进行服务发 现的机制。比如官方提供的:discovery.etcd.io DNS 发现 通过DNS查询方式获取其他节点地址信息 

一、环境准备

主机名 IP cpu数量 内存
etcd-1 192.168.80.40 2 4
etcd-2 192.168.80.39 2 4
etcd-3 192.168.80.55 2 4

二、安装部署

2.1 下载安装包

三台节点都执行

wget https://github.com/etcd-io/etcd/releases/download/v3.3.18/etcd-v3.3.18-linux-amd64.tar.gz 

在这里插入图片描述

解压

tar -xvf etcd-v3.3.18-linux-amd64.tar.gz 
#进入解压包目录查看etcd版本 cd etcd-v3.3.18-linux-amd64/ ./etcdctl --version 

在这里插入图片描述可以看到api默认版本是V2,如果要切换到V3版本需要修改环境变量,将/etc/profile文件里的ETCDCTL_API设为3:

vim /etc/profile #使配置文件生效 source /etc/profile 

不同版本的命令使用不一样,我这里就不修改了。

2.2 将etcd和etcdctl复制到/usr/local/bin中

将etcd和etcdctl复制到/usr/local/bin中,方便在任何目录下直接用调用

cp etcd etcdctl /usr/local/bin/ 

2.3 创建目录并赋予权限

#创建systemd的工作目录 mkdir -m 777 /var/lib/etcd #创建etcd的数据存储目录 mkdir -m 777 /var/lib/etcd/data 

2.4 修改节点配置

2.4.1 配置etcd.conf文件

/etc目录下新建etcd目录,再新建etcd.conf文件

cd /etc mkdir etcd cd etcd touch etcd.conf 
vim /etc/etcd/etcd.conf ETCD_NAME="etcd-1" ETCD_DATA_DIR="/var/lib/etcd/data" ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379" ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380" ETCD_INITIAL_ADVERTISE_PEER_URLS="http://49.111.111.111:2380" ETCD_ADVERTISE_CLIENT_URLS="http://172.17.0.15:2379,http://localhost:2379" ETCD_INITIAL_CLUSTER="etcd-1=http://49.111.111.111:2380,etcd-2=http://47.111.111.111:2380,etcd-3=http://101.111.111.111:2380" ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-token" ETCD_INITIAL_CLUSTER_STATE="new" 

etcd-2:

vim /etc/etcd/etcd.conf ETCD_NAME="etcd-2" ETCD_DATA_DIR="/var/lib/etcd/data" ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379" ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380" ETCD_INITIAL_ADVERTISE_PEER_URLS="http://47.111.111.111:2380" ETCD_ADVERTISE_CLIENT_URLS="http://172.16.178.96:2379,http://localhost:2379" ETCD_INITIAL_CLUSTER="etcd-1=http://49.111.111.111:2380,etcd-2=http://47.111.111.111:2380,etcd-3=http://101.111.111.111:2380" ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-token" ETCD_INITIAL_CLUSTER_STATE="new" 

etcd-3:

vim /etc/etcd/etcd.conf ETCD_NAME="etcd-3" ETCD_DATA_DIR="/var/lib/etcd/data" ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379" ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380" ETCD_INITIAL_ADVERTISE_PEER_URLS="http://101.111.111.111:2380" ETCD_ADVERTISE_CLIENT_URLS="http://192.168.1.14:2379,http://localhost:2379" ETCD_INITIAL_CLUSTER="etcd-1=http://49.111.111.111:2380,etcd-2=http://47.111.111.111:2380,etcd-3=http://101.111.111.111:2380" ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster-token" ETCD_INITIAL_CLUSTER_STATE="new" 

2.4.2 配置/etc/systemd/system/etcd.service文件

vim /etc/systemd/system/etcd.service [Unit] Description=Etcd Server After=network.target After=network-online.target Wants=network-online.target [Service] User=root Type=notify EnvironmentFile=-/etc/etcd/etcd.conf ExecStart=/usr/local/bin/etcd Restart=on-failure RestartSec=10s LimitNOFILE=40000 [Install] WantedBy=multi-user.target 

2.5 启动ectd服务

#使etcd.service文件修改生效 systemctl daemon-reload systemctl enable etcd #启动etcd服务 systemctl start etcd #查看服务状态 systemctl status etcd 

2.6 查看集群成员信息

etcdctl member list --write-out=table 

2.7 查看集群状态

etcdctl --endpoints=http://127.0.0.1:2379,http://47.111.1111.111:2379,http://101.111.111.111:2379 endpoint status --write-out=table 

可以看到ecs1机器是leader,其他两台为follower,群集成功运行

另外执行etcdctl命令如果加上–write-out=table表示以表格的形式输出结果,有title,方便看数据。


免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/135785.html

(0)
上一篇 2025-07-02 13:33
下一篇 2025-07-02 13:45

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信