etcd operator 介绍

原文:https://coreos.com/blog/introducing-the-etcd-operator.html

etcd operator 介绍:简化 etcd 集群配置和管理(Introducing the etcd Operator: Simplify etcd cluster configuration and management)

今天,CoreOS 在 Kubernetes 社区推出了一种称为 Operator 的新型软件。Operator 建立在 Kubernetes 资源和控制器概念之上,但包含应用领域知识以处理常见任务。它们降低了运行分布式系统的复杂性,并帮助你专注于所需的配置,而不是手动配置和生命周期管理的细节。

etcd 是一个分布式简直存储系统。事实上,etcd 是 Kubernetes 的主要数据存储仓库;存储和备份所有 Kubernetes 的集群状态。作为 Kubernetes 集群的关键组成部分,必然需要拥有可靠的自动化配置和管理方法。

作为一个基于分布式共识的系统,etcd 的集群配置可能很复杂。引导,维护合法的成员,重新配置集群成员资格,创建备份,处理灾难恢复以及监控关键时间是一件枯燥无味的工作,并且需要特定的 etcd 专业知识。

今天我们介绍一下如何使这些应用程序更容易运行在基于 Kubernetes 的 etcd Operator 和 Prometheus Operator。在这篇文章中,我们将概述 Operator 对于 etcd 的重要性。让我们继续深入。

etcd Operator: 管理 etcd 集群的最佳方式(The etcd Operator: The best way to manage etcd clusters)

etcd Operator 使用简单的命令行安装,并且使用户能够使用简单的声明式配置来配置和管理 etcd 的复杂性,这些配置将创建,配置和管理 etcd 集群。

etcd Operator 提供一下功能:

创建/销毁:用户只需最小限度地指定集群的大小,而不是为每个 etcd 成员指定繁琐的设置。

调整大小:用户只需要按规范修改大小,etcd Operator 将负责部署,销毁或重新配置集群成员,例如,从 3 到 5,或从 5 到 3。

备份:etcd Operator 自动并透明地执行备份。用户只需指定备份策略,例如每 30 分钟备份一次,并保留最后 3 次备份。

升级:在不停机地情况下升级 etcd 是一项重要而艰巨地任务。使用 etcd Operator 不仅可以简化操作,还可以避免常见地升级缺陷和错误。

它的工作方式(How it works)

etcd Operator 通过三个步骤模拟人类操作员的行为:观察,分析和行动。

首先,它通过使用 Kubernetes API 观察当前集群状态。其次,它发现期望状态和当前状态之间的差异。最后,它通过 etcd 集群管理 API 或 Kubernetes API 中的一个或两个来修复差异。

etcd Operator 事实上的逻辑循环

例如,假设我们有一个由 3 个成员组成的 etcd 集群。不幸的是,一名成员挂掉了。etcd Operator 观察到当前集群由 2 个正在运行的 pods。它与预期的状态不同,应该由 3 个成员。Operator 通过移除死亡人员并添加新成员来恢复一名成员。现在 etcd 集群恢复到健康状态。

用 “Chaos Monkey” 来测试 etcd Operator(Testing the etcd Operator with)

确保 Operator 的健壮性非常重要。我们开发了一种类似于 Netflix 的 “Chaos Monkey” 的工具,可以随机地杀死 pod。

我们使用这个工具来测试主要地 Operator 功能:即创建,恢复和备份 etcd 集群。启用 “Chaos Monkey”后,我们连续浸泡测试。它强调 Operator 通过杀死随机 etcd pod,以便我们可以实时地看到 Operator 如何反应。

尝试实现(Try it out)

部署 etcd Operator(Deploy the etcd Operator)

在任何 Kubernetes 集群上创建新地 etcd Operator 都很简单。在 etcd Operator 源仓库中有一个部署示例:

$ kubectl create -f https://coreos.com/operators/etcd/latest/deployment.yaml 

该命令在 Kubernetes 集群上创建了一个 etcd Operator。etcd Operator 现在就可以管理 etcd 集群了。

用 Operator 创建一个新的 etcd 集群(Create a new etcd cluster with the Operator)

现在,我们将创建一个具有 3 个成员备份的 etcd 集群。(请注意,只有当你的 Kubernetes 集群支持持久卷时,备份才有效)。再次,我们将使用 etcd Operator 源码中的示例:

$ kubectl create -f https://coreos.com/operators/etcd/latest/example-etcd-cluster.yaml $ kubectl get pods NAME READY STATUS RESTARTS AGE etcd-cluster-0000 1/1 Running 0 23s etcd-cluster-0001 1/1 Running 0 16s etcd-cluster-0002 1/1 Running 0 8s etcd-cluster-backup-tool-rhygq 1/1 Running 0 18s 

感兴趣吗?要尝试更多示例并探索更多功能,请查看 etcd Operator 文档

etcd Operator 正在积极开发中。许多令人兴奋的功能正在计划和开发中。我们很乐意看到你的反馈和贡献!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值