暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

手动配置etcd集群与解决的报错

IT那活儿 2024-03-25
399
点击上方“IT那活儿”公众号--专注于企业全栈运维技术分享,不管IT什么活儿,干就完了!!!

前 言

Etcd 作为一个分布式键值对存储,设计用来可靠而快速的保存关键数据并提供访问。通过分布式锁,leader 选举和写屏障(write barriers)来实现可靠的分布式协作。
Etcd 集群是为高可用,持久性数据存储和检索而准备。
Etcd 一般部署集群推荐奇数个节点,推荐的数量为 3、5 或者 7 个节点构成一个集群。
本次记录为源码安装 Etcd 集群过程及当中一些排查错误的思路。

下载安装

下载路径:Releases · etcd_io/etcd (https://github.com/etcd-io/etcd/releases/),包中含内容比较简单:
除了一些文档文件,包含 3 个 Etcd 相关运行程序: etcd,etcdctl,etcdutl,老的 Etcd 版本只有两个文件,服务执行文件 etcd 和 客户端文件 etcdutl ,新的版本添加了 etcdutl 其中部分功能代替了 etcdctl 的部分功能。
启动 etcd 集群要求每个成员知道集群中的其他成员。在一些场景中,集群成员的 IP 地址可能无法提前知道。在这种情况下,etcd 集群可以在发现服务的帮助下启动。
  • 包含:静态、etcd 发现、dns 发现。
本次是安装 3 节点的集群,采用静态设置参数 initial_cluster 标记来离线启动配置
手动配置/etc/systemd/system/etcd.service:
手动配置/etc/etcd/etcd.conf 文件:

本次使用 ETCD V3.5.12 版本,下面是配置文件中的配置项,也可以将这些配置项写到执行 etcd 命令的参数中直接启动。
  • data_dir: 数据目录;
  • listen_peer_urls: 监听地址;
  • listen_client_urls: 监听客户访问的地址,与 listen_peer_urls 不能一样,以端口号区分; 
  • name:  每个 ETCD 的节点名字,同一个集群中的节点名字不要重复;
  • initial_advertise_peer_urls: 在集群中自己标明的访问地址;
  • advertise_client_usrls: 通告给其他客户端的集群的服务地址;
  • initial_cluster: 集群中的每个节点的地址;
  • initial_cluster_token:初始 etcd 集群的名称;
  • initial_cluster_state: 初始化集群的状态,如果是第一次状态都设置为 NEW 整个配置较简单。
安装成功后查看状态:

下面列出一些安装过程中的报错,与相关解决办法:
检查 service 中配置的目录 etcd 是否有权限访问。
提示包含冲突参数,检查 service 中启动参数与 conf 文件是否冲突,service 中如果包含相关参数,可手动删掉。
启动失败与参数 restart=on-failure 导致,可忽略,或添加 RestartSec 增加启动间隔。

END


本文作者:陈辉耀(上海新炬中北团队)

本文来源:“IT那活儿”公众号

文章转载自IT那活儿,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论