使 Kubernetes 变得更好的 11 个工具

使 Kubernetes 变得更好的 11 个工具

并非所有服务器平台,即使是最强大和可扩展的服务器平台,也不能满足所有需求。 虽然 Kubernetes 本身运行良好,但它可能缺乏合适的部分来完成。 您总是会发现忽略您需求的特殊情况,或者 Kubernetes 在默认安装下无法工作,例如数据库支持或 CD 操作。

这是这个容器编排器的附加组件、扩展和其他好东西出现的地方,并受到最广泛的社区的支持。 在这篇文章中,我们将介绍 11 件我们发现的最好的事情。 我们自己在 南桥 它们非常有趣,我们计划以实际的方式处理它们——将它们拆成螺丝和螺母,看看里面有什么。 其中一些将完美补充任何 Kubernetes 集群,而另一些将帮助解决典型 Kubernetes 发行版中未实现的特定任务。

看门人:策略管理

项目 开放策略代理 (OPA) 提供了在 Kubernetes 中的云应用程序堆栈之上创建从入口到服务网格的策略的能力。 看门人 赋予 Kubernetes 在集群上自动执行策略的本机能力,并且还提供对违反策略的任何事件或资源的检查。 所有这些都是由相对较新的 Kubernetes 机制(Webhooks 准入管理器)处理的,该机制会在资源发生变化时触发。 借助 Gatekeeper,OPA 策略成为 Kubernetes 集群状态的另一部分,而无需持续监督。

Gravity:便携式 Kubernetes 集群

如果您想将应用程序部署到 Kubernetes,许多应用程序都有一个 Helm 图表来指导和自动化此过程。 但是,如果您想“按原样”使用 Kubernetes 集群并将其部署到其他地方怎么办?

重力 拍摄 Kubernetes 集群、容器映像注册表以及运行的称为“应用程序包”的应用程序的快照。 这样的一个包,就是一个普通的文件 .tar,可以在任何 Kubernetes 可以运行的地方复制集群。

Gravity 还会检查目标基础设施的行为是否与源基础设施相同,以及目标上的 Kubernetes 环境是否可用。 Gravity 的付费版本还添加了安全功能,包括 RBAC 以及跨不同集群部署同步安全设置的能力。

最新的主要版本 Gravity 7 可以将 Gravity 镜像推送到现有的 Kubernetes 集群中,而不是从镜像中创建一个全新的集群。 Gravity 7 还可以在不使用 Gravity 映像的情况下安装集群。 Gravity 还支持 SELinux,并可与 Teleport SSH 网关本地配合使用。

Kaniko:在 Kubernetes 集群中构建容器

大多数容器镜像都是构建在容器堆栈之外的系统上的。 但是,有时您需要在容器堆栈内构建映像,例如在正在运行的容器中或在 Kubernetes 集群中的某个位置。

佳子 在容器环境中构建容器,但不依赖于容器化服务,例如 Docker。 相反,Kaniko 从基础映像中提取文件系统,在提取的文件系统之上执行所有用户空间构建命令,并在每个命令后拍摄文件系统的快照。

注:Kaniko 目前(2020 年 XNUMX 月, 约译者) 无法构建 Windows 容器。

Kubecost:Kubernetes 启动成本选项

大多数 Kubernetes 管理工具都侧重于易用性、监控、了解 pod 内的行为等。 但是,如何监控与 Kubernetes 启动相关的成本(以卢布和科比为单位)呢?

库贝成本 实时处理 Kubernetes 参数,从而获得主要云提供商运行的集群的最新成本信息,并显示在面板中,其中包含每个集群的每月成本。 RAM、CPU 时间、GPU 和磁盘子系统的价格按 Kubernetes 组件(容器、pod、服务等)细分

Kubecost 还跟踪非集群资源(例如 Amazon S3 存储桶)的成本,尽管这受到 AWS 的限制。 成本数据可以发送到 Prometheus,以便您可以使用它以编程方式更改集群的行为。

如果您有足够 15 天的日志数据,Kubecost 可以免费使用。 对于其他功能,监控 199 个节点的起价为每月 50 美元。

KubeDB:在 Kubernetes 中运行战斗数据库

数据库也很难在 Kubernetes 中出色地运行。 您会发现适用于 MySQL、PostgreSQL、MongoDB 和 Redis 的 Kubernetes 运算符,但它们都有缺点。 此外,典型的 Kubernetes 功能集并不能直接解决大多数已定义的数据库问题。

库贝数据库 帮助您创建自己的 Kubernetes 语句来进行数据库管理。 运行备份、克隆、监控、快照和声明性数据库创建是其组成部分。 请注意,功能支持取决于数据库。 例如,创建集群适用于 PostgreSQL,但不适用于 MySQL(已经 正如正确指出的那样 dnbstd, 约译者).

Kube-monkey:Kubernetes 的 Chaos Monkey

最无差错的压力测试方法被认为是随机故障。 这一理论是 Netflix 的 Chaos Monkey 的核心,这是一种混沌工程工具,可以随机关闭虚拟机和生产环境容器,以“激励”开发人员构建更具弹性的系统。 库贝猴子 - 对 Kubernetes 集群实施相同的压力测试基本理论。 它的工作原理是随机杀死您指定的集群中的模块,也可以设置为以特定的时间间隔运行。

适用于 AWS 的 Kubernetes 入口控制器

Kubernetes 通过一个名为的服务提供外部负载均衡器和集群网络服务 入口 AWS 提供负载均衡功能,但不会自动将它们与相同的 Kubernetes 功能捆绑在一起。 适用于 AWS 的 Kubernetes 入口控制器 缩小了这一差距。

它自动管理集群中每个入口的 AWS 资源,为新入口资源创建负载均衡器,并在删除资源时删除负载均衡器。 它使用 CloudFormation 来确保集群状态保持一致。 它还支持 CloudWatch 警报设置并自动管理集群中使用的其他元素,例如 SSL 证书和 EC2 Auto Scaling 组。

Kubespray:自动安装 Kubernetes

库贝喷雾 自动安装生产就绪的 Kubernetes 集群,从硬件服务器上的安装到主要公共云。 当安装在硬件服务器上时,它使用 Ansible(Vagrant 可选)来启动部署,并使用您选择的网络附加组件(如 Flannel、Calico 等)从头开始创建一个高度可用的集群。

Skaffold:Kubernetes 的迭代开发

脚手架 - 用于在 Kubernetes 中组织应用程序 CD 的 Google 工具之一。 一旦您对源代码进行更改,skaffold 就会自动检测到这一点,开始构建和部署,并在出现任何错误时向您发出警告。 Skaffold 完全在客户端运行,因此安装或更新可能没有什么细微差别。 它可以与现有的 CICD 管道一起使用,也可以与一些外部构建工具(主要是 Google 的 Bazel)交互。

Teresa:Kubernetes 上最简单的 PaaS

邓丽君 是一个在 Kubernetes 之上运行简单 PaaS 的应用程序部署系统。 团队用户可以部署和管理自己的应用程序。 对于信任该应用程序并且不想处理 Kubernetes 及其所有复杂性的人来说,这让事情变得更容易一些。

倾斜:将容器更新流式传输到 Kubernetes 集群

倾斜由 Windmill Engineering 开发,监视不同 Dockerfile 的更改,然后逐步将适当的容器部署到 Kubernetes 集群。 本质上,它允许您只需更新 Dockerfile 即可实时更新生产集群。 Tilt是在集群内部构建的,只需更改源代码即可。 您还可以直接从 Tilt 拍摄集群状态快照并捕获错误条件,以便与团队成员共享以进行调试。

PS 所有这些工具我们都反复在 南桥 用我们好奇的双手探寻。 已经(希望如此!)在二月份的线下强化课程中展示真实的实践。 Kubernetes 基地 8 年 10 月 2021 日至 XNUMX 日。以及 Kubernetes Mega 12 月 14 日至 XNUMX 日。 说实话,我们也很怀念线下学习时那种热烈而充满活力的氛围。 无论技术多么先进,都无法取代人与人之间的现场交流和志同道合的人聚集在一起时的特殊氛围。

来源: habr.com

添加评论