引入 Polaris 以保持 Kubernetes 集群健康

笔记。 翻译。:本文的原文由 ReactiveOps 的首席 SRE 工程师 Rob Scott 撰写,该工程师是所宣布项目的开发背后。 对部署到 Kubernetes 的内容进行集中验证的想法与我们非常接近,因此我们饶有兴趣地关注此类举措。

引入 Polaris 以保持 Kubernetes 集群健康

很高兴介绍 Polaris 是一个开源项目,有助于维护 Kubernetes 集群的健康。 我们构建 Polaris 来自动化 ReactiveOps 中使用的一些最佳实践,以保持集群在大量客户中安全可靠地运行。 是时候开源代码了。

我们一次又一次地看到看似微小的配置错误会导致严重问题,让工程师彻夜难眠。 很简单的东西——比如由于健忘而忘记的资源请求的配置 (资源请求) - 可能会破坏自动扩展,甚至导致工作负载没有资源。 如果以前配置中的小错误导致生产中断,现在 Polaris 可以让您完全避免这些错误。

Polaris 可帮助您避免影响应用程序稳定性、可靠性、可扩展性和安全性的配置问题。 它可以轻松识别部署配置中的缺陷并防止将来出现问题。 有了 Polaris,您就可以高枕无忧了,因为您知道您的应用程序是使用一组经过充分测试的标准来部署的。

Polaris 由两个关键组件组成:

  1. 监控面板,提供有关集群中现有部署的配置情况的信息;
  2. 一个实验性测试 Webhook,可防止推出不符合可接受标准的部署。

北极星仪表板

创建 Polaris 仪表板的目的是提供一种简单直观的方式来查看 Kubernetes 部署的当前状态并获取改进建议。 它提供了集群的完整概述,并按类别、命名空间和部署对结果进行了细分。

引入 Polaris 以保持 Kubernetes 集群健康

Polaris 的默认标准相当高,因此如果您的分数低于您的预期,请不要感到惊讶。 Polaris 的主要目标是设定高标准并争取出色的默认配置。 如果建议的配置看起来过于严格,可以在部署配置过程中进行纠正,针对特定工作负载进行优化。

作为 Polaris 出版物的一部分,我们决定不仅展示该工具本身,而且还详细描述其中包含的测试。 每条评论都包含相关文档的链接,这解释了为什么我们认为它很重要,并提供了有关该主题的其他资源的链接。

北极星 Webhook

如果仪表板有助于了解当前部署配置的概述,则 Webhook 可确保将部署到集群的所有部署符合标准。

一旦仪表板识别的问题得到纠正,您可以使用 Webhook 来确保配置永远不会再次低于既定标准。 Webhook 不允许在其配置包含重大偏差(“错误”级别)的集群中进行部署。

该 Webhook 的潜力令人兴奋,但仍需要进行大量测试才能被视为生产就绪。 目前,这是一项实验性功能,是全新开源项目的一部分。 由于它可能会干扰部署更新,因此请谨慎使用。

入门

我希望您仍在阅读本公告,Polaris 是一个可能对您有用的工具。 想亲自尝试一下仪表板吗? 在集群中部署面板非常容易。 它以最低权限(只读)安装,所有数据都保留在内部。 要使用 kubectl 部署仪表板,请运行:

kubectl apply -f https://raw.githubusercontent.com/reactiveops/polaris/master/deploy/dashboard.yaml

现在您需要配置端口转发以通过本地端口 8080 访问仪表板:

kubectl port-forward --namespace polaris svc/polaris-dashboard 8080:80

当然,还有许多其他方法可以使用和部署 Polaris,包括使用 Helm。 您可以了解这一点以及更多信息 GitHub 上的 Polaris 存储库.

这只是一个开始。

我们对 Polaris 迄今为止所构建的东西感到兴奋,但故事并没有结束。 我们希望添加许多新的测试来扩展功能。 我们还在寻找更好的方法来在命名空间或资源级别实现异常检查规则。 如果您想了解有关我们计划的更多信息,请查看 路线图.

如果您觉得 Polaris 可能有用,请花点时间尝试一下。 我们很乐意接受任何想法、反馈、问题或拉取请求。 您可以通过以下方式联系我们 项目网站GitHub上Twitter.

译者PS

另请阅读我们的博客:

来源: habr.com

添加评论