kubernetes集群安装指南:etcd集群部署
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,etcd 是基于 Raft 的分布式 key-value 存储系统,由 CoreOS 开发,常用于服务发现、共享配置以及并发控制(如 leader 选举、分布式锁等)。kubernetes 使用 et
千家信息网最后更新 2025年12月02日kubernetes集群安装指南:etcd集群部署
etcd 是基于 Raft 的分布式 key-value 存储系统,由 CoreOS 开发,常用于服务发现、共享配置以及并发控制(如 leader 选举、分布式锁等)。kubernetes 使用 etcd 存储所有运行数据。
部署准备
所有操作都是在devops机器上操作,将相关脚本编辑好,然后通过ansible 脚本模块统一执行。
定义环境变量
#################### Variable parameter setting ######################ETCD_INSTALL_PATH="/data/apps/k8s/etcd"ETCD_BIN_DIR="${ETCD_INSTALL_PATH}/bin"ETCD_DATA_DIR="${ETCD_INSTALL_PATH}/data"ETCD_WAL_DIR="${ETCD_INSTALL_PATH}/wal"N01="master-k8s-n01=https://10.10.10.22:2380"N02="master-k8s-n02=https://10.10.10.23:2380"N03="master-k8s-n03=https://10.10.10.24:2380"ETCD_ENPOIDTS="$N01,$N02,$N03"CA_PATH="/etc/k8s/ssl"SOFTWARE="/root/software"VERSION=v3.3.13PACKAGE="etcd-${VERSION}-linux-amd64.tar.gz"HOSTNAME=`hostname`DOWNLOAD_URL="https://github.com/devops-apps/download/raw/master/etcd/${PACKAG}"ETH_INTERFACE=eth2LISTEN_IP=$(ifconfig | grep -A 1 ${ETH_INTERFACE} |grep inet |awk '{print $2}')USER=k8s下载和分发 etcd 二进制文件
登录devops访问etcd 的 release 页面下载最新版本的发布包并通过ansible同步到三个master三个节点/root/software目录下:
wget $DOWNLOAD_URL -P $SOFTWARE2 部署etcd集群
在devops主机上使用ansible分别对三个master节点执行以下操作:
2.1 安装etcd二进制执行命令
### 1.Check if the install directory exists.if [ ! -d $ETCD_BIN_DIR ]; then mkdir -p $ETCD_BIN_DIR mkdir -p $ETCD_DATA_DIR mkdir -p $ETCD_WAL_DIRfi### 2.Install etcd binary of kubernetes.if [ ! -f "$SOFTWARE/etcd-${VERSION}-linux-amd64.tar.gz" ]; then sudo wget $DOWNLOAD_URL -P $SOFTWARE >>/tmp/install.log 2>&1ficd $SOFTWARE && tar -xzf etcd-${VERSION}-linux-amd64.tar.gz -C ./cp -fp etcd-${VERSION}-linux-amd64/etcd* $ETCD_BIN_DIRln -sf $ETCD_BIN_DIR/{etcd,etcdctl} /usr/local/binsudo chmod -R 755 $ETCD_INSTALL_PATHsudo chown -R $USER:$USER $ETCD_INSTALL_PATH2.2 创建 etcd 的 systemd unit 启动服务文件
cat >/usr/lib/systemd/system/etcd.service<- WorkingDirectory、--data-dir:指定工作目录和数据目录为 ${ETCD_DATA_DIR},需在启动服务前创建这个目录;
- --wal-dir:指定 wal 目录,为了提高性能,一般使用 SSD 或者和 --data-dir 不同的磁盘;
- --name:指定节点名称,当 --initial-cluster-state 值为 new 时,--name 的参数值必须位于 --initial-cluster 列表中;
- --cert-file、--key-file:etcd server 与 client 通信时使用的证书和私钥;
- --trusted-ca-file:签名 client 证书的 CA 证书,用于验证 client 证书;
- --peer-cert-file、--peer-key-file:etcd 与 peer 通信使用的证书和私钥;
- --peer-trusted-ca-file:签名 peer 证书的 CA 证书,用于验证 peer 证书;
2.3 启动 etcd 服务并检查启动状态
启动etcd服务
systemctl etcd.service start检查etcd启动状态
systemctl status etcd|grep Active确保状态为 active (running),否则查看日志,确认原因:
sudo journalctl -u etcd验证etcd服务状态及查看当前leader
验证etcd服务状态
ETCDCTL_API=3 etcdctl \ --endpoints=${ETCD_ENPOIDTS} \ --cacert=/etc/k8s/ssl/ca.pem \ --cert=/etc/k8s/ssl/etcd.pem \ --key=/etc/k8s/ssl/etcd-key.pem endpoint health当输出值为以下状态即为正常:https://10.10.10.22:2379 is healthy: successfully committed proposal: took = 3.693346mshttps://10.10.10.23:2379 is healthy: successfully committed proposal: took = 2.80687mshttps://10.10.10.24:2379 is healthy: successfully committed proposal: took = 4.493037ms查看当前leader
ETCDCTL_API=3 etcdctl \ --endpoints=${ETCD_ENPOIDTS} \ --cacert=/etc/k8s/ssl/ca.pem \ --cert=/etc/k8s/ssl/etcd.pem \ --key=/etc/k8s/ssl/etcd-key.pem endpoint status输出:https://10.10.10.22:2379, 641670f7677ceff, 3.3.13, 2.9 MB, false, 2, 6198986https://10.10.10.23:2379, ce37122364c277fa, 3.3.13, 2.9 MB, true, 2, 6198986https://10.10.10.24:2379, 4d1003897626ccde, 3.3.13, 2.9 MB, false, 2, 6198986- 当前leader为master-k8s-n02
到这里,整个etcd集群就部署完成,关于更多的etcd操作可以阅读etcd官方文档,部署好etcd数据库,开部署kubernetes master节点相关组件,请参考:kubernetes集群安装指南:apiserver节点组件部署,关于etcd脚本请从此处获取;
证书
服务
状态
目录
节点
验证
集群
三个
数据
脚本
二进制
分布式
文件
组件
存储
检查
输出
通信
指南
不同
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
云服务器2012 配置教程
济南市服务器包装哪家强
巴南软件开发厂家
电脑关机管理服务器
佛山教育软件开发常见问题
即时通讯软件开发的功能选择
德邦资深六等软件开发
知乎服务器性能
2021年6月网络安全
网安大队检查医院网络安全
甘肃曙光服务器维修费用云主机
桃城区网络安全和信息化
网络安全教育班会讲稿
数据库通常不受版权保护
女孩子学软件开发好吗
五阳软件开发有限公司
网站更改数据库字段
数据库int默认数据类型
查看mongodb数据库目录
深圳市掌柜网络技术
建设网络安全应急响应机制
服务器如何开通外网
创建excel数据库
mfc怎么读取dat数据库
锐思数据库中股权制衡z指数
共享电动车软件开发
网络安全教材pdf
计算机等级数据库和网络技术考试
软件开发分解
计算机网络技术行业认知