登录 / 注册 Account

容器

什么是 etcd?

etcd(读作 et-see-dee)是一种开源的分布式统一键值存储,用于分布式系统或计算机集群的共享配置、服务发现和的调度协调。etcd 有助于促进更加安全的自动更新,协调向主机调度的工作,并帮助设置容器的覆盖网络。

Jump to section

etcd 是许多其他项目的核心组件。最值得注意的是,它是 Kubernetes 的首要数据存储,也是容器编排的实际标准系统。使用 etcd, 云原生应用可以保持更为一致的运行时间,而且在个别服务器发生故障时也能正常工作。应用从 etcd 读取数据并写入到其中;通过分散配置数据,为节点配置提供冗余和弹性。

Kubernetes 和 etcd

作为 Kubernetes 的首要数据存储,etcd 存储和复制所有的 Kubernetes 集群状态。etcd 是 Kubernetes 集群的关键组件,因此必须要有一种可靠的方法来进行配置和管理。

etcd 属于基于共识的分布式系统,因此 etcd 的配置可能比较复杂。引导、维护仲裁、重新配置集群成员身份、创建备份、处理灾难恢复以及监控重要事件都是复杂、繁冗的任务,需要运用相关的专业技能。

使用 etcd Operator 可让这一切都能轻松实现。

etcd Operator

通过使用 Operator(代表人类运维知识 ),使得 etcd 更容易在 Kubernetes 或 Kubernetes 容器平台(如红帽 OpenShift)上使用。etcd Operator 在 Operator 框架内管理 etcd,并用于简化 etcd 集群配置和管理。

etcd Operator 可通过一个简单的命令来安装,也允许用户使用简单的声明式配置来创建、配置和管理 etcd 集群,从而配置和管理 etcd 的复杂设置。

etcd Operator 提供以下功能:

  • 创建/部署 - 用户只需要指定集群大小,不必逐一为 etcd 成员指定繁杂的配置设置。

  • 调整大小 - 用户只需要在规格中指定大小,etcd Operator 便会负责部署、销毁和/或重新配置集群成员。

  • 备份 - etcd Operator 可以自动、透明地执行备份。用户只需要指定备份策略即可。例如,每隔 30 分钟备份一次,并保留最近的 3 个备份。

  • 升级 - 在不停机的情况下升级 etcd 是一项重要但又棘手的任务。通过 etcd Operator 执行升级,可以简化运维工作并避免常见的升级错误。

运作方式

etcd Operator 通过 3 个步骤来模拟人类运维人员的行为:观察、分析和操作。

  1. Operator 通过使用 Kubernetes API 来观察当前的集群状态。

  2. 然后,查明预期状态和当前状态之间的差异。

  3. 最后,通过利用 etcd 集群管理 API 和/或 Kubernetes API 缩小这些差异。

红帽如何提供帮助?

etcd 由 CoreOS 团队在 2013 年创造,并由红帽工程师与业内同仁携手维护。 

2018 年,红帽和 CoreOS 团队将 etcd 社区项目转交给云原生计算基金会(CNCF)负责,这是是 Linux 基金会旗下旨在推动云原生系统采用的供应商中立组织。etcd 旨在为每一个 Kubernetes 集群提供支持,因此这一举措把 etcd 带给了最依赖它的 CNCF 社区。

红帽计划继续参与开发 etcd,特别是将其作为我们企业级 Kubernetes 产品红帽 OpenShift 的一部分。红帽也是 2015 年成立 CNCF 时在幕后提供支持的首批公司之一,之后一直与相关基金会和社区携手开发和发展云原生技术。我们深厚的渊源以及对开源软件和社区推动型开发的专注,都有助于让 etcd 继续在 CNCF 管理下为社区造福。