etcd 在 Kubernetes 中的作用
作为 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 的作用是什么?
etcd Operator 通过 3 个步骤来模拟人类运维人员的行为:观察、分析和操作。
- Operator 通过使用 Kubernetes API 来观察当前的集群状态。
- 然后,查明预期状态和当前状态之间的差异。
- 最后,通过利用 etcd 集群管理 API 和/或 Kubernetes API 缩小这些差异。
红帽能提供什么帮助?
etcd 由 CoreOS 团队在 2013 年创造,并由红帽工程师与业内同仁携手维护。
2018 年,红帽和 CoreOS 团队将 etcd 社区项目转交给云原生计算基金会(CNCF)负责,这是是 Linux 基金会旗下旨在推动云原生系统采用的供应商中立组织。etcd 旨在为每一个 Kubernetes 集群提供支持,因此这一举措把 etcd 带给了最依赖它的 CNCF 社区。
红帽计划继续参与开发 etcd,特别是将其作为我们企业级 Kubernetes 产品红帽 OpenShift 的一部分。红帽也是 2015 年成立 CNCF 时在幕后提供支持的首批公司之一,之后一直与相关基金会和社区携手开发和发展云原生技术。我们深厚的渊源以及对开源软件和社区推动型开发的专注,都有助于让 etcd 继续在 CNCF 管理下为社区造福。