3节点etcd cluster的安装

实验环境:

RHEL9:

node1:10.90.7.101

node2:10.90.7.102

node3:10.90.7.103

etcd 3.6.11

##1.add user etcd

useradd -r -s /sbin/nologin etcd

##2.download etcd

curl -LOC - https://github.com/etcd-io/etcd/releases/download/v3.6.11/etcd-v3.6.11-linux-amd64.tar.gz

cd /opt

tar xvf /tmp/etcd-v3.6.11-linux-amd64.tar.gz

ln -s /opt/etcd-v3.6.11-linux-amd64 /opt/etcd

mkdir -p /var/lib/etcd

chown -R etcd:etcd /var/lib/etcd

chmod -R 700 /var/lib/etcd

mkdir -p /etc/etcd

chown -R etcd:etcd /etc/etcd

chmod -R 700 /etc/etcd

以下为node1的vi /etc/etcd/etcd.conf

对应的node2,node3修改对应的ETCD_NAME和ip

member

ETCD_NAME=infisical-etcd-01

ETCD_DATA_DIR="/var/lib/etcd/default.etcd"

#ETCD_WAL_DIR=""

#ETCD_SNAPSHOT_COUNT="10000"

#ETCD_HEARTBEAT_INTERVAL="100"

#ETCD_ELECTION_TIMEOUT="1000"

ETCD_LISTEN_PEER_URLS="http://10.90.7.101:2380"

ETCD_LISTEN_CLIENT_URLS="http://10.90.7.101:2379,http://127.0.0.1:2379"

#ETCD_MAX_SNAPSHOTS="5"

#ETCD_MAX_WALS="5"

#ETCD_CORS=""

#cluster

ETCD_INITIAL_ADVERTISE_PEER_URLS="http://10.90.7.101:2380"

if you use different ETCD_NAME (e.g. test), set ETCD_INITIAL_CLUSTER value for this name, i.e. "test=http://..."

ETCD_INITIAL_CLUSTER="infisical-etcd-01=http://10.90.7.101:2380,infisical-etcd-02=http://10.90.7.102:2380,infisical-etcd-03=http://10.90.7.103:2380"

ETCD_INITIAL_CLUSTER_STATE="new"

ETCD_INITIAL_CLUSTER_TOKEN="infisical-etcd-cluster"

ETCD_ADVERTISE_CLIENT_URLS="http://10.90.7.101:2379"

#ETCD_DISCOVERY=""

#ETCD_DISCOVERY_SRV=""

#ETCD_DISCOVERY_FALLBACK="proxy"

#ETCD_DISCOVERY_PROXY=""

#ETCD_ENABLE_V2="true"

#ETCD_STRICT_RECONFIG_CHECK="false"

#ETCD_AUTO_COMPACTION_RETENTION="0"

#proxy

#ETCD_PROXY="off"

#ETCD_PROXY_FAILURE_WAIT="5000"

#ETCD_PROXY_REFRESH_INTERVAL="30000"

#ETCD_PROXY_DIAL_TIMEOUT="1000"

#ETCD_PROXY_WRITE_TIMEOUT="5000"

#ETCD_PROXY_READ_TIMEOUT="0"

#security

#ETCD_CERT_FILE=""

#ETCD_KEY_FILE=""

#ETCD_CLIENT_CERT_AUTH="false"

#ETCD_TRUSTED_CA_FILE=""

#ETCD_AUTO_TLS="false"

#ETCD_PEER_CERT_FILE=""

#ETCD_PEER_KEY_FILE=""

#ETCD_PEER_CLIENT_CERT_AUTH="false"

#ETCD_PEER_TRUSTED_CA_FILE=""

#ETCD_PEER_AUTO_TLS="false"

#logging

#ETCD_DEBUG="false"

examples for -log-package-levels etcdserver=WARNING,security=DEBUG

#ETCD_LOG_PACKAGE_LEVELS=""

vi /etc/systemd/system/etcd.service

说明一下,从官方github复制过来,但需要添加EnvironmentFile=/etc/etcd/etcd.conf这一行,及相应的路径

Unit

Description=etcd key-value store

Documentation=https://github.com/etcd-io/etcd/blob/main/contrib/systemd/etcd.service

After=network-online.target local-fs.target remote-fs.target time-sync.target

Wants=network-online.target local-fs.target remote-fs.target time-sync.target

Service

User=etcd

Type=notify

EnvironmentFile=/etc/etcd/etcd.conf

Environment=ETCD_DATA_DIR=/var/lib/etcd

Environment=ETCD_NAME=%m

ExecStart=/opt/etcd/etcd

Restart=always

RestartSec=10s

LimitNOFILE=40000

Install

WantedBy=multi-user.target

chmod 644 /etc/systemd/system/etcd.service

systemctl daemon-reload

systemctl enable etcd

systemctl start etcd

etcdctl endpoint health --cluster

http://10.90.7.101:2379 is healthy: successfully committed proposal: took = 2.458968ms

http://10.90.7.102:2379 is healthy: successfully committed proposal: took = 8.408295ms

http://10.90.7.103:2379 is healthy: successfully committed proposal: took = 8.73806ms

相关推荐
闲云野鹤在人间18 分钟前
头秃修炼手册:StorageClass+StatefulSet+ETCD 全套渡劫笔记
linux·数据库·笔记·云原生·kubernetes·etcd
吴声子夜歌10 天前
Docker入门与实战——Etcd(高可用的键值数据库)
数据库·docker·etcd
草莓熊Lotso11 天前
【C++ 基于微服务的即时通讯系统】etcd + brpc 从安装到服务注册发现全链路实战
网络·数据库·c++·redis·微服务·etcd
kuroomi16 天前
K8s集群升级与etcd备份恢复实战
容器·kubernetes·etcd
小小龙学IT19 天前
etcd 深度解析:Go 分布式一致性 KV 存储与 Raft 共识实战
分布式·golang·etcd
开开心心就好1 个月前
C盘空间不够用?一键扫描清理系统垃圾
前端·javascript·安全·支持向量机·语音识别·etcd·模拟退火算法
Msshu1232 个月前
快充诱骗取电芯片XSP26A 支持全协议取电+串口发送充电器功率+共用D+D-网络
mongodb·postgresql·etcd·flume·consul·kylin
姚不倒2 个月前
etcd 学习系列(四):存储模型 —— WAL 和 Snapshot 是如何配合的
运维·etcd
姚不倒2 个月前
etcd 学习系列(二):集群架构 —— 3 节点是如何工作的
运维·架构·etcd
姚不倒2 个月前
etcd 学习系列(七):排障指南 —— 常见问题与解决方案
运维·etcd