译见 | 掌舵 Kubernetes(二):轻松驾驭 Kubernetes 的三个开源项目

 从对集群状态的管理到快照和 DR,与之配套的开源项目 Heptio、Kubed 和 Kubicorn 一直在填补 Kubernetes 相应领域的空白。

Kubernetes 显然是一种解决问题的绝佳手段,它让我们能在不忽略负载均衡、容器网络、确保应用程序的高可用性或者管理更新或回滚等相应细节的前提下,规模化地运行容器化应用程序,让一切化繁为简。

但使用 Kubernetes 也存在着一些挑战。对于 Kubernetes 的起步和运行都需要工作量,并且围绕其进行的管理和维护更是彻头彻尾的棘手。

以 Kubernetes 如今这样飞速发展的态势,我们不能仅仅寄希望于他们的核心项目能很快解决所有问题。但是幸运的是,与 Kubernetes 有关的社区正在为这些现有的问题寻找解决办法。

本文将向你介绍三个有关 Kubernetes 的新兴项目,这些新项目能减轻容器编排的开发,维护,工作和监管的难度。

Heptio

Kubernetes 的两位创始人离开 Google 后,共同创立了 Heptio,该公司致力于使 Kubernetes 变得更易于使用。与其自己创立的 Kubernetes 一样,也与其他厂商一样,他们将心力投身于提供开源工具,来提升与原版和上游版本 Kubernetes 的使用体验。

本月初,Heptio 发布了他们的首批项目,Heptio Ark 和 Heptio Sonobuoy。Ark 是一款基于 Kubernetes 集群的容灾恢复系统 — 可以对容器的应用程序进行快照,备份和恢复。Ark 记录了 Kubernetes API 对象和持久卷(PV)磁盘的状态。其默认示例允许你使用 S3 — 兼容存储服务(“Minio”),但是 Ark 同样可以利用所有巨头云提供商(Amazon Web Services,Google Cloud Platform 和 Microsoft Azure)上的存储空间。

那有没有什么是 Ark 不能实现的呢?它还无法提供一个完整的解决方案来在不同的环境中迁移现有的 Kubernetes 集群。 Ark 也将在之后支持跨云提供商的持久卷快照迁移。

而另一个项目 Sonobuoy 能够检验给定 Kubernetes 的安装,通过测试来检测其 Kubernetes 版本是否匹配。

Kubernetes 开发过程通常供应商或用户都会进行大量的修改,这可能会使它们与更新无法兼容。Sonobuoy 便可以判定这些修改是否造成不兼容。集群的状态也可以被抛弃并用于诊断报告,Sonobuoy 运行的测试也可以通过插件架构进行扩展。

尽管如此,Sonobuoy 还处于发展的早期阶段,因为它还无法在 Kubernetes 自身的一致性测试中检查标识的所有问题。其发展的长期计划是与核心的 Kubernetes 团队创建的测试套件来保持紧密的同步。

Kubed

AppsCode 是容器化应用协作编码平台的制造商,他们最近发布了一个项目,填补了管理 Kubernetes 集群中的许多空白。

Kubed 将一系列有用的功能集中在一个单一的守护进程中。Kubed 可以定期地进行集群快照,并为已删除的对象提供临时存储(如果你需要再次使用),执行自动事件转发,通过各种渠道发送通知等等。

Kubernetes 还可以在 Elasticsearch 或 InfluxDB 的实例中存储日志数据,但清理旧数据便需要用户进行手动操作了。Kubed 一个功能 — janitors,能通过在指定的时间段之后清除日志数据来自动执行上述的过程。Kubed 还不支持进行清理运行的能力,但问题是开放的,以增加该功能。

Kubed 项目目前处于一个起步的还不稳定的状态,但在其未来的计划中将进行许多突破性的变化。这些功能之一便是支持 Kubernetes 最近推出的 Custom Resource Definitions(CRD),并通过 Kubernetes 用户的 API 服务器提供 Kubed API,这能让 Kubernetes 提供允许生态应用以扩展其 API 集。

Kubicorn

Kubicorn 项目致力于帮助用户在不同的云服务上构建并管理 Kubernetes 基础架构。像 Puppet 和其他管理基础架构的现代化工具一样,Kubicorn 采用了声明性的理念:用户描述他们在集群中想要了解的状态,并确保集群的状态与此目标保持同步更新。

Kubicorn 旨在作为一个独立工具和作为其他工具可以调用的库。同理,Kubicorn 利用 Kubernetes 中的现有工具(如 kubeadm 工具)进行操作。因此, Kubicorn 的目的是补充现有的工作流程,而不是取代它们。

Kubicorn 的主要功能是使用快照,它的工作原理是允许用户定义他们的集群状态,并原子级地应用该状态(如果它不奏效, 则进行回滚), 并将该状态捕获为快照。这些快照还可以用于新的部署。

必须要注意的是,Kubicorn 不是一个正式的 Kubernetes 项目,它仍然被认为是实验性的。还不能正式用于生产工作。

当然, 对 Kubernetes 进行的相关实验已经非常成熟。你可以通过 Kubicorn、Kubed 和 Heptio 轻松突破 Kubernetes 的相关问题带来的挑战!

Leave a Reply

Your email address will not be published. Required fields are marked *