使Kubernetes变得更好的11种工具

译文
云计算
本文是我们发现的11款主要的Kubernetes配套工具。一些可以补充任何Kubernetes集群,另一些可以满足Kubernetes无法满足的特定需求。

【51CTO.com快译】很少有计算平台可以满足所有需求,哪怕是那些功能强大、规模巨大的计算平台。虽然Kubernetes一打开就很有用,但还远远不够。总是能找到默认Kubernetes功能集不尽如人意或完全忽视的用例或需求,前者如数据库支持,后者如持续交付。

这时候更广泛的Kubernetes社区挺身而出,提供了针对这种容器编排框架的诸多附件、扩展件和第三方产品。以下是我们发现的11款主要的Kubernetes配套工具。一些可以补充任何Kubernetes集群,另一些可以满足Kubernetes无法满足的特定需求。

[[285725]]

Gravity:易于移植的Kubernetes集群

如果你要将应用程序部署到Kubernetes中,许多应用程序都有Helm图表来引导和自动化该过程。但是如果你想直接拿来Kubernetes集群并将其部署在某个地方该怎么办呢?

Gravity可以为Kubernetes集群、容器注册中心以及运行中应用程序创建快照,名为“应用程序bundle”。bundle只是一个.tar文件而已,可以在Kubernetes运行的任何地方复制集群。

Gravity还确保目标基础架构可以支持与源基础架构同样的行为要求,并确保目标上的Kubernetes运行时环境状况良好。企业版Gravity添加了安全功能,包括基于角色的访问控制以及跨多个集群部署同步安全配置的功能。

Kaniko:在Kubernetes集群中构建容器

大多数容器映像是在容器堆栈外面的系统上构建。不过有时候,你想要在容器堆栈里面执行构建过程,比如在运行中容器里面或在Kubernetes集群上的某个位置。

Kaniko在容器环境中执行容器构建,但不依赖Docker之类的容器守护进程完成其工作。 Kaniko拿来基本映像后提取文件系统,然后在所提取文件系统上面的用户空间中执行所有构建命令,并在每个命令后获取文件系统的快照。

请注意,Kaniko目前无法构建Windows容器。

Kedge:简洁的Kubernetes部署定义

Kubernetes最饱受诟病的地方是其清单或应用程序定义有多重叠复杂而冗长。它们编写和维护起来很痛苦,于是难怪人们求助于第三方工具以减少痛苦。

Kedge提供了一种更简单更简洁的语法。你可以为Kedge提供Kubernetes定义文件的简单版本,Kedge可以将该简单定义扩展为完整的Kubernetes定义。与下面介绍的Koki Short不同,Kedge并不为声明文件使用模块化语法。它只是将应用程序定义简化为常见快捷方式。

请注意,Kedge的上一个版本是2018年4月发布的。

Koki Short:易于管理的Kubernetes清单

与上面的Kedge一样,Koki Short这个项目旨在改善应用程序定义或清单在Kubernetes中的工作方式。与Kedge定义一样,Short定义使用一种简短的语法来描述Kubernetes容器,可以转换成完整的语法并再次转换回去。与Kedge定义不同,Short定义还是模块化的,这意味着来自一个Short声明的详细信息可以在其他声明中重复使用,那样就可以简明地定义拥有通用元素的许多pod。

Kubecost:运行中Kubernetes的成本度量指标

大多数Kubernetes管理工具专注于易用性、监视和了解pod行为等方面。但如何监视与运行中Kubernetes有关的成本(用美元和美分来度量)呢?

Kubecost使用实时Kubernetes度量指标以及从几大云提供商上运行的集群获得的实际成本信息,提供显示每个集群部署每月成本的仪表板视图。内存、CPU、GPU和存储的成本全部按Kubernetes组件(容器、pod、服务和部署等)加以细分。

Kubecost还可以跟踪“集群外”资源(比如Amazon S3存储桶)的成本,不过这目前仅限于AWS。成本方面的数据甚至可以发回Prometheus以共享,那样你可以使用该数据以编程方式更改集群行为。

KubeDB:在Kubernetes中运行生产数据库

数据库在Kubernetes中一直很难优雅地运行,而原生的Kubernetes功能集无法直接解决数据库的许多特定问题。

KubeDB让管理员可以创建Kubernetes operator以管理数据库。运行备份、克隆、监视、快照和声明式创建数据库都是其功能的一部分。还支持集群,但仅针对某些数据库——比如它适用于PostgreSQL,但还不适用于MySQL。

Kube-monkey:面向Kubernetes的混沌猴子

对系统进行压力测试的一种有效方法是随机破坏系统,这就是Netflix的Chaos Monkey(混沌猴子)背后的理论。Chaos Monkey是一种混沌工程工具,可随机终止生产环境中运行的虚拟机和容器,以“鼓励”开发人员构建更具弹性的系统。Kube-monkey实施了同样的基本理念,对Kubernetes集群进行压力测试。其工作原理是,随机终止你专门指定的一个集群中的pod,还可以进行微调以便在特定的时间窗口内运行。

Kubernetes Ingress Controller for AWS

Kubernetes通过一项名为Ingress的服务为集群提供外部负载均衡和网络服务。AWS提供负载均衡功能,但并不自动将这些服务耦合到Kubernetes的工具。Kubernetes Ingress Controller for AWS填补了这个空白。

Kubernetes Ingress Controller for AWS自动管理集群中每个Ingress对象的AWS资源,为新的Ingress资源创建负载均衡系统,并为已删除的Ingress资源删除负载均衡系统,利用AWS CloudFormation来确保集群的一致状态。它还自动管理集群中使用的其他元素,比如SSL证书和EC2自动扩展组。

Skaffold:Kubernetes的迭代开发

Skaffold是谷歌自己的Kubernetes工具之一,可以对Kubernetes应用程序执行持续部署。你对源代码进行更改时,Skaffold可自动检测到更改,触发构建和部署过程,并在出现任何错误时发出警告。Skaffold完全在客户端运行。它可以在现有的CI/CD管道中使用,与几个外部构建工具(主要是谷歌自己的Bazel)整合起来。

Teresa:Kubernetes上的简单PaaS

Teresa是一个应用程序部署系统,可在Kubernetes上作为简单的PaaS来运行。组织成团队的用户可以部署和管理属于他们的应用程序。这使得负责特定应用程序的人处理该应用程序更容易一点,没必要直接与Kubernetes打交道。

Tilt:将容器更新版发送到Kubernetes集群

由Windmill Engineering开发的Tilt可实时监测对Dockerfile的更改,然后将那些更改增量部署到Kubernetes集群中的相应容器。实际上,它允许开发人员仅通过更新Dockerfile即可实时更新活动集群。Tilt在集群内执行构建,推送的唯一更改是源代码。

原文标题:11 tools that make Kubernetes better,作者:Serdar Yegulalp

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

 

责任编辑:未丽燕 来源: 51CTO.com
相关推荐

2020-02-11 12:35:19

Kubernetes容器

2019-04-28 11:15:36

Kubernetes开源工具

2021-05-08 05:58:40

机器学习显微镜AI

2022-02-21 23:08:50

Kubernetes集群容器

2021-02-19 09:20:04

KubernetesSpark云帐户

2023-06-15 13:59:00

人工智能智能家居

2016-09-18 18:27:21

KubernetesDocker

2019-09-23 10:59:31

机器学习算法编程

2019-09-23 11:17:46

机器学习数据技术

2021-06-10 05:43:01

开源Kubernetes容器

2020-11-08 13:50:19

Kubernetes容器

2021-08-07 09:30:40

Kubernetes容器

2022-04-19 09:57:50

黑客勒索比特币

2023-07-14 16:17:41

物联网

2009-06-17 16:39:03

Spring JMS

2014-05-07 09:41:21

UbuntuTrusty Tahr

2012-10-30 10:12:31

2012-10-23 13:56:24

BYODBYON

2021-10-29 15:45:09

物联网人工智能技术

2011-05-20 15:39:08

点赞
收藏

51CTO技术栈公众号