etcd3.4.x单机部署及集群部署(静态无证书)

最近部门有个框架要用到etcd集群,但无奈于整个公司只有我们部门在用,sre不方便把他们的给我们用,只能自己搭建etcd集群,记录下在linux下单机部署和集群部署,本文安装的版本是3.4.18,etcd完整的cluster(集群)至少有三台,这样才能选举出一个master (主节点)其他两个就是node(次节点)
具体想要的版本可以到官网:https://github.com/etcd-io/etcd/releases
步骤1-4是单机部署和集群部署都需要的操作

1、下载etcd3.4.18

curl -L https://storage.googleapis.com/etcd/v3.4.18/etcd-v3.4.18-linux-amd64.tar.gz -o /tmp/etcd-v3.4.18-linux-amd64.tar.gz

2、解压

tar xzvf /tmp/etcd-v3.4.18-linux-amd64.tar.gz -C /tmp/etcd --strip-components=1

3、删除安装包

rm -f /tmp/etcd-v3.4.18-linux-amd64.tar.gz

4、在/tmp目录下输入命令

mv etcd /usr/local/bin
mv etcdctl /usr/local/bin

5、设置配置文件

vim /etc/etcd.conf
单机部署在输入模式下输入以下配置:
ETCD_NAME=default
ETCD_DATA_DIR="/home/www" #数据存放位置,自己设定
ETCD_LISTEN_CLIENT_URLS="http://127.0.0.1:2380" #对外提供的访问地址:服务器ip+端口号,根据实际的ip设置
ETCD_ADVERTISE_CLIENT_URLS="http://0.0.0.0:2379"
集群部署在机器下输入以下配置:
#ETCD_WAL_DIR=""
ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380" #监听URL,和其他节点通讯的地址
ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379,http://0.0.0.0:4001" #对外提供服务的地址
#ETCD_MAX_SNAPSHOTS="5"
#ETCD_MAX_WALS="5"
ETCD_NAME="etcd1" #节点名,集群部署名字分为为1、2、3后缀即可
#ETCD_SNAPSHOT_COUNT="100000"
#ETCD_HEARTBEAT_INTERVAL="100"
#ETCD_ELECTION_TIMEOUT="1000"
#ETCD_QUOTA_BACKEND_BYTES="0"
#ETCD_MAX_REQUEST_BYTES="1572864"
#ETCD_GRPC_KEEPALIVE_MIN_TIME="5s"
#ETCD_GRPC_KEEPALIVE_INTERVAL="2h0m0s"
#ETCD_GRPC_KEEPALIVE_TIMEOUT="20s"
#[Clustering]
ETCD_INITIAL_ADVERTISE_PEER_URLS="http://xx.xx.xx.xx:2380" #该节点同伴监听地址,这个值会告诉集群中其他节点,etcd1-3都一样,修改此ip为本机ip即可
ETCD_ADVERTISE_CLIENT_URLS="http://0.0.0.0:2379,http://0.0.0.0:4001" #对外公告的该节点客户端监听地址
#ETCD_DISCOVERY=""
#ETCD_DISCOVERY_FALLBACK="proxy"
#ETCD_DISCOVERY_PROXY=""
#ETCD_DISCOVERY_SRV=""
ETCD_INITIAL_CLUSTER="etcd1=http://xx.xx.xx.xx:2380,etcd2=http://xx.xx.xx.xx:2380,etcd3=http://xx.xx.xx.xx:2380" #集群中所有节点的信息
#ETCD_INITIAL_CLUSTER_TOKEN="etcd-cluster"
ETCD_INITIAL_CLUSTER_STATE="new" #新建集群的时候,这个值为 new;假如已经存在的集群,这个值为 existing
#ETCD_STRICT_RECONFIG_CHECK="true"
ETCD_ENABLE_V2="true" #http接口用来监控

6、创建开机启动文件

vim /etc/systemd/system/etcd.service
输入模式下输入:
[Unit]
Description=Etcd Server
Documentation=https://github.com/coreos/etcd
After=network.target

[Service]
User=root
Type=notify
#这个文件特别关键,etcd使用的环境变量都需要通过环境变量文件读取
EnvironmentFile=-/etc/etcd.conf
ExecStart=/usr/local/bin/etcd
Restart=on-failure
RestartSec=10s
LimitNOFILE=40000

[Install]
WantedBy=multi-user.target

7、重新加载配置 && 开机启动 && 启动etcd

依次输入以下三个命令
systemctl daemon-reload
systemctl enable etcd
systemctl start etcd

8、单机测试

etcdctl put mykey "test"
etcdctl get mykey

image.png

9、集群部署后查看状态和leader

etcdctl -w table --endpoints=http://xx.xx.xx.xx:2380,http://xx.xx.xx.xx:2380,http://xx.xx.xx.xx:2380 endpoint status

image.png

10、集群部署后测试

image.png

如有问题请联系[email protected]

你可能感兴趣的:(etcd3.4.x单机部署及集群部署(静态无证书))