千家信息网

kubernetes集群安装指南:etcd集群部署

发表于:2024-09-22 作者:千家信息网编辑
千家信息网最后更新 2024年09月22日,etcd 是基于 Raft 的分布式 key-value 存储系统,由 CoreOS 开发,常用于服务发现、共享配置以及并发控制(如 leader 选举、分布式锁等)。kubernetes 使用 et
千家信息网最后更新 2024年09月22日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 $SOFTWARE

2 部署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_PATH
2.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安全错误 数据库的锁怎样保障安全 曙光服务器怎么换内存条 广州福盈网络技术 mc远古版本手机版服务器 db2数据库的时间怎么修改 怎么开设电脑服务器 上海项目软件开发信息推荐 数据库什么是词法分析和语法分析 软件开发三年经验 数据库id改为序列 广州 软件开发 培训机构 政府软件开发项目招标公告 用服务器下载 资兴县电子软件开发培训班 网安民警培训网络安全新闻稿 个人服务器需要安装dns吗 服务器错误 404找不到 成都忠华盛世互联网科技有限公司 数据库小总结 珠海应用软件开发订制 东莞市易特软件开发 服务器网口指示灯绿色常亮 青岛创恒信网络技术有限公司 学校机房怎么下载数据库 植物大战僵尸服务器通讯怎么解决 网络安全配置思维导图 第一次开服务器的视频 高港区自动化网络技术诚信合作 现在读计算机网络技术好吗 汕头pc软件开发定制 内蒙古网络安全行业协会
0