《Linux运维总结:基于Ubuntu 22.04+x86_64架构CPU部署etcd 3.5.15二进制分布式集群》

avatar
作者
猴君
阅读量:0

总结:整理不易,如果对你有帮助,可否点赞关注一下?

更多详细内容请参考:《Linux运维篇:Linux系统运维指南》


一、功能简介

1、什么是etcd

etcd 是一个分布式、可靠的键值存储系统,用于分布式系统中存储关键核心数据。它由 CoreOS 开发,并且是开源的,授权协议为 Apache 许可证。etcd 内部采用了 Raft 一致性算法,可以实现配置共享和服务发现。etcd中文文档可参考如下:Etcd 中文文档或者Etcd官方文档中文版

2、etcd 的主要特性包括:

1、简单:安装配置简单,提供了 HTTP API 进行交互,使用也很简单。
2、键值对存储:将数据存储在分层组织的目录中,类似于标准文件系统。
3、监控变更:可以监视特定的键或目录以检测更改,并对值的更改作出反应。
4、支持TLS客户端安全认证
5、性能:单实例(V3)支持每秒10KQps。
6、可靠:使用 Raft 算法充分保证了分布式系统数据的强一致性
7、默认情况下,etcd 会将数据更新持久化到磁盘上。
8、使用 Go 语言编写,易于部署和维护。

3、典型应用场景:

1. 服务注册与发现:在微服务架构中,etcd 可以作为服务发现的服务注册中心。
2. 配置管理:存储和管理应用程序的配置信息。
3. 消息发布与订阅:使用 etcd 的 watch 机制来实现消息的发布与订阅模式。
4. 分布式通知与协调:用于在分布式系统中实现通知和协调逻辑。
5. 分布式锁:利用 etcd 实现分布式锁,确保分布式系统中资源的互斥访问。

4、有2个著名开源项目使用etcd

1、Kubernetes (K8s):Kubernetes 使用 etcd 作为其核心存储系统,用于存储集群的状态信息,如节点、Pods、Services、Volumes 等。Kubernetes 依赖 etcd 来保证其状态的一致性和高可用性。
2、CoreDNS: CoreDNS 是一个灵活且可扩展的 DNS 服务器,它使用 etcd 作为数据存储后端之一。CoreDNS 可以通过 etcd 插件来实现动态的 DNS 记录更新。

5、etcd、Zookeeper 和 Consul对比

特性/工具etcdzookeeperConsul
一致性模型强一致性 (Raft)强一致性 (ZAB)最终一致性 (可配置为强一致性)
扩展性良好,适合大量键值对良好,但在大量数据时可能遇到性能瓶颈可能遭受高延迟和内存压力
功能和易用性API 简洁,易于使用功能强大,支持多种高级特性API 设计友好,易于集成
服务发现支持服务发现支持服务发现专门设计用于服务发现
健康检查不直接支持不直接支持支持健康检查
安全性支持客户端证书验证支持安全配置支持 TLS 和 ACLs
多数据中心支持多数据中心配置支持多数据中心配置原生支持多数据中心配置
语言和生态使用 Go 语言,广泛的客户端库支持使用 Java 编写,适合 Java 应用程序使用 Go 语言,支持多种语言的客户端库
社区和生态活跃的社区,是 Kubernetes 的一部分历史悠久,庞大的用户基础良好的文档和社区支持
性能在处理大量键值对时表现出色在某些场景下提供了更好的最小延迟性能取决于使用场景
使用场景配置管理、服务注册和发现等场景复杂协调服务服务发现、健康检查和配置管理等场景

二、部署说明

1、环境信息

主机IP节点操作系统内核版本etcd版本
192.168.1.111etcd-1Ubuntu 22.04.4 LTS

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!