发布于 2026-01-06 0 阅读
0

🔥我们精选的 13 款 Kubernetes 部署和模板工具🚀 总结🔍 我们期待您的反馈!🫶 Kubernetes 云开发工具包 Kubectl Helm kustomize Flux 版本 2 Argo CD - Kubernetes 声明式持续交付 timoni Carvel Join Terraform Grafana Tanka dhall-kubernetes 总结 DEV 全球展示挑战赛,由 Mux 呈现:展示您的项目!

🔥我们精选的 13 款 Kubernetes 部署和模板工具🚀

TL;DR 🔍

我们期待您的反馈!🫶

Kubernetes 云开发工具包

Kubectl

定制

Flux 版本 2

Argo CD - Kubernetes 的声明式持续交付

蒂莫尼

卡维尔

加入

Terraform

格拉法纳·坦卡

dhall-kubernetes

结论

由 Mux 主办的 DEV 全球展示挑战赛:展示你的项目!

TL;DR 🔍

感觉在 Kubernetes 部署和打包工具的海洋中迷失了方向?别担心!
我们为您准备了一份全面的速查表。深入探索我们精心挑选的列表,了解每个工具的用途和用户友好度评级,让您的 Kubernetes 之旅轻松无忧。
告别不知所措,迎接清晰明了的 Kubernetes 指南!🌐🚀


我们期待您的反馈!🫶

请在下方评论区分享您的想法!告诉我们您希望看到哪些主题的内容。如果本指南对您有所帮助,请点击猫咪图标并点赞,以支持我们创作更多以开发者为中心的内容。您的反馈对我们至关重要!

Glasskube Github


工具 许可证 GitHub 星标 易用性 用户界面 商业支持 模板 部署
cdk8s Apache 2.0 3.9k ⭐⭐⭐⭐
kubectl Apache 2.0 2.6k ⭐⭐⭐⭐
玻璃立方体 LGPL.v3 152 ⭐⭐⭐⭐
Apache 2.0 25.3万 ⭐⭐⭐
定制 Apache 2.0 10.2k ⭐⭐⭐⭐
通量 Apache 2.0 5.5k ⭐⭐⭐
Argo CD Apache 2.0 14.9k ⭐⭐⭐⭐
蒂莫尼 Apache 2.0 981 ⭐⭐⭐⭐⭐
卡维尔 Apache 2.0 325 ⭐⭐⭐
普鲁米 Apache 2.0 18.4k ⭐⭐⭐⭐
Terraform 生物标准手语 39.8k
Tanka with Jsonnet 麻省理工学院 2.1k ⭐⭐
达尔 Apache 2.0 600 ⭐⭐⭐

cdk8s:Kubernetes 与熟悉的编程语言的结合

GitHub 标志 cdk8s 团队/ cdk8s

使用面向对象编程定义 Kubernetes 原生应用和抽象层

Kubernetes 云开发工具包

网站

在 Construct Hub 上查看

cdk8s是一个开源软件开发框架,它使用熟悉的编程语言和丰富的面向对象 API 来定义 Kubernetes 应用程序和可重用的抽象层。cdk8s 应用程序会生成标准的 Kubernetes 清单文件,这些清单文件可以应用于任何 Kubernetes 集群。

cdk8s 是一个云原生计算基金会沙箱项目,由 AWS 倾情打造。我们鼓励您试用留下反馈积极参与贡献

内容:

存储库

本项目包含多个软件包,这些软件包通过以下存储库进行维护和发布:

  • cdk8s - 核心库。请注意,由于历史原因,该cdk8s软件包维护在代码cdk8s-team/cdk8s-core仓库中。
  • cdk8s-cli - 命令行界面。
  • cdk8s-plus - Kubernetes 核心的高级构造。

当前代码库充当跨模块问题的伞形代码库,以及部署……

它是什么: Kubernetes 云开发工具包 (cdk8s) 允许您以面向对象的方式编写 Kubernetes 清单/Helm Chart。
您可以轻松扩展现有类、使用接口,并确保无需重复编写代码。
所有代码都将被编译成yaml资源,然后可以轻松部署到您的集群。

优势:对初学者友好,面向对象的 API,与 AWS CDK 集成。

易用性: ⭐⭐⭐⭐

kubectl:Kubernetes 部署的瑞士军刀

GitHub 标志 kubernetes / kubectl

kubectl 代码的问题跟踪和镜像

Kubectl

kubectl 标志

构建状态 GoDoc

k8s.io/kubectl代码库用于跟踪随 kubectl 命令行工具(kubectl cli)一起分发的相关问题k8s.io/kubernetes。它还包含一些供客户端程序使用的软件包。例如,这些软件包被集成到kubectlk8s.io/kubernetes cli 客户端中供其使用。该客户端最终也会迁移到这里。

贡献要求

  • 单元测试完全覆盖。

  • 符合 Go 工具规范(例如go getgo test等等)。它需要能够被其他地方供应商接受。

  • 不依赖于k8s.io/kubernetes任何外部库。依赖于其他库是可以的。

  • 代码必须添加有用的注释,不仅对项目开发人员有用,对这些软件包的外部用户也有用。

  • 审核 PR 时,建议您使用 Golang 的代码审查评论页面。

  • 本仓库中的软件包应力求实现合理、小巧的接口,并导入有限的依赖项。

社区、讨论、贡献和支持

请参阅此文档,了解如何联系此项目的维护者……

简介:认识一下命令行英雄!kubectl 是 Kubernetes 的官方命令行界面。
它是您应用配置、管理集群以及从终端处理所有 Kubernetes 相关操作的首选工具。您甚至可以
使用kubectl editkubectl 直接编辑和修改资源。(不推荐)

优势:标准化、多功能、对资源的直接控制。

易用性: ⭐⭐⭐⭐

Glasskube:通往 Kubernetes 部署的简易之路

GitHub 标志 glasskube /操作员

🧊 Glasskube 应用运营商

GitHub 仓库星标 Docker拉取 执照 文档 文物中心


Glasskube 标志

Kubernetes Operator

开源工具自动

运行入门指南 »

浏览我们的网站 » GitHub

Docker Hub Artifact Hub。LinkedIn


⭐️ 为什么选择 Glasskube?

开启自动驾驶模式,即可在 Kubernetes 上全自动部署和管理开源工具。我们的开源 Glasskube Operator 是管理所有您喜爱的开源工具及其相关基础设施组件(例如数据库、缓存)的最简单快捷的方式,无需手动操作即可保持其最新状态。

✨ 特点

  • 👌 安装简便,几乎无需配置
  • ✅ 数据库和缓存的自动设置
  • 🔄 自动执行并安排版本更新和补丁程序
  • 🗓️ 定时数据库备份
  • ⚙️ 简易 SMTP 配置界面

目录

🚀 快速入门

Glasskube Operator 可以通过 Helm 轻松部署。要安装此开源工具,只需应用自定义配置即可……

Glasskube是什么: Glasskube 是您了解透明 Kubernetes 部署的窗口。
它预先打包了流行的开源应用程序和组件,并通过自定义资源对其进行抽象。Glasskube
利用 Kubernetes Operator 将组件安装到正确的命名空间,并直接确保应用程序和组件已连接并配置完毕。

优势:用户友好、部署透明、注重简洁性。

易用性: ⭐⭐⭐⭐

Helm:Kubernetes 包管理器

GitHub 标志 /

Kubernetes 包管理器

构建状态 成绩单 GoDoc CII最佳实践 OpenSSF 记分卡

Helm 是一个用于管理 Chart 的工具。Chart 是预配置的 Kubernetes 资源包。

使用 Helm 可以:

  • 查找并使用打包成 Helm Charts 的常用软件在 Kubernetes 中运行。
  • 将您自己的应用程序以 Helm Chart 的形式共享
  • 创建可复现的 Kubernetes 应用程序构建
  • 智能管理您的 Kubernetes 清单文件
  • 管理 Helm 包的发布

头盔在手篮里

Helm 是一个简化 Kubernetes 应用程序安装和管理的工具。你可以把它想象成 Kubernetes 版的 apt/yum/homebrew。

  • Helm 渲染你的模板并与 Kubernetes API 通信
  • Helm 可以在你的笔记本电脑、CI/CD 系统或任何你想让它运行的地方运行。
  • Chart 是 Helm 包,其中至少包含两项内容:
    • 软件包描述(Chart.yaml
    • 一个或多个模板,其中包含 Kubernetes 清单文件
  • 图表可以存储在磁盘上,也可以从远程图表存储库(例如 Debian 或 RedHat 软件包)中获取。

安装

二进制下载…

Helm是什么: Helm是Kubernetes的常用包管理器。
它将复杂的应用程序部署打包成可共享和部署的“图表”,从而简化了应用程序部署。

优势:软件包管理、社区图表、版本控制。

易用性: ⭐⭐⭐

Kustomize:像专业人士一样定制 Kubernetes 配置

GitHub 标志 kubernetes-sigs / kustomize

自定义 Kubernetes YAML 配置

定制

kustomize允许您自定义原始的、无模板的 YAML 文件以实现多种用途,同时保持原始 YAML 文件不变,并可直接使用。

kustomize它面向 Kubernetes;它能够理解并修改Kubernetes 风格的API 对象。它类似于 `<script>`标签make,因为它的功能在文件中声明;它也类似于 `<script>` 标签sed,因为它会输出编辑后的文本。

该工具由sig-cli ( KEP )赞助。

构建状态 成绩单

kubectl 集成

要查找嵌入在最新版本 kubectl 中的 kustomize 版本,请运行kubectl version

> kubectl version --client
Client Version: v1.31.0
Kustomize Version: v5.4.2
Enter fullscreen mode Exit fullscreen mode

kubectl v1.14中新增了v2.0.3 版本的 kustomize 构建流程。此后,kubectl 中的 kustomize 流程一直停留在 v2.0.3 版本,直到 kubectl v1.21 版本才更新至 v4.0.5 版本。未来,kustomize 流程将定期更新,相关更新信息将体现在 Kubernetes 版本说明中。

Kustomize 是 kubectl 的一部分,它可以帮助您避免重复编写 Kubernetes 清单文件。
您可以在多个 kustomize 项目中复用相同的资源,并通过应用补丁来修改特定值。此外
,您还可以创建可复用的组件,从而更好地组织您的 kustomize 项目。

优势:配置可定制、简单易用、与 GitOps 集成。

易用性: ⭐⭐⭐⭐

Flux:GitOps 实现持续交付的魔法

GitHub 标志 fluxcd / flux2

面向 Kubernetes 的开放且可扩展的持续交付解决方案。基于 GitOps Toolkit 构建。

Flux 版本 2

发布 CII最佳实践 OpenSSF 记分卡 FOSSA状态 文物中心 SLSA 3

Flux 是一款用于保持 Kubernetes 集群与配置源(如 Git 存储库和 OCI 工件)同步的工具,并在有新代码要部署时自动更新配置。

Flux 版本 2 (v2) 从底层开始构建,旨在利用 Kubernetes 的 API 扩展系统,并与 Prometheus 和 Kubernetes 生态系统的其他核心组件集成。在版本 2 中,Flux 支持多租户,并支持同步任意数量的 Git 仓库,以及其他一些用户期待已久的功能。

Flux v2 是使用GitOps Toolkit构建的,GitOps Toolkit 是一套可组合的 API 和专门用于在 Kubernetes 之上构建持续交付的工具。

Flux 是一个云原生计算基金会 ( CNCF ) 的毕业项目,已被各种组织云提供商投入生产使用

快速入门和文档

首先,请查看这篇关于如何在 Kubernetes 上引导 Flux 并进行部署的指南……

Flux 是一个完整的 Kubernetes 持续交付 (CD) 解决方案。它将
Kubernetes 集群与存储在 Git 仓库中的 Manifest 文件同步。
它还包含用于自定义配置和 Helm 仓库的控制器,这些控制器通过将 Helm 打包到 Helm Controller 中来与 Kubernetes API 交互。
此外,Weaveworks 还提供用户界面和商业支持。

优势: GitOps、自动化同步、持续交付。

易用性: ⭐⭐⭐

Argo CD:GitOps 的大师

GitHub 标志 argoproj / argo-cd

Kubernetes 的声明式持续部署

发布: 发布版本 文物中心 SLSA 3

代码: 集成测试 代码发现 CII最佳实践 OpenSSF 记分卡

社会的: Twitter关注 松弛 LinkedIn

Argo CD - Kubernetes 的声明式持续交付

Argo CD是什么?

Argo CD 是一个面向 Kubernetes 的声明式 GitOps 持续交付工具。

Argo CD UI

Argo CD 演示版

为什么选择 Argo CD?

  1. 应用程序定义、配置和环境应该采用声明式方法并进行版本控制。
  2. 应用程序部署和生命周期管理应该自动化、可审计且易于理解。

谁在使用Argo CD?

Argo CD 官方用户列表

文档

要了解有关 Argo CD 的更多信息,请访问完整文档。查看在线演示:https://cd.apps.argoproj.io/

社区

贡献、讨论和支持

您可以通过以下渠道联系 Argo CD 社区和开发者:

参与 Argo CD 项目须遵守CNCF 行为准则。

博客和演示文稿

  1. Awesome-Argo:精选列表……

Argo CD是什么: Argo CD 是 Fl​​ux 的替代方案,它更注重用户界面,用于将清单文件同步到集群。
它也遵循声明式方法,清单文件应存储在 Git 仓库中。

优势: GitOps、持续交付、声明式配置。

易用性: ⭐⭐⭐⭐

Timoni:Kubernetes 部署的简洁性

GitHub 标志 stefanprodan / timoni

Timoni 是一个 Kubernetes 包管理器,由 CUE 提供支持,并受到 Helm 的启发。

蒂莫尼

赞助此项目 发布 平台 建造 执照 SLSA 3

Timoni是一个基于CUE的 Kubernetes 包管理器,其设计灵感来源于Helm

Timoni 项目致力于改善 Kubernetes 配置的编写用户体验。与 Helm 将 Go 模板与 YAML 混合使用,或 Kustomize 将 YAML 层层叠加不同,Timoni 依靠 cuelang 的类型安全、代码生成和数据验证功能,为创建、打包和交付应用程序到 Kubernetes 提供更好的体验。

重要的

请注意,Timoni 目前仍在积极开发中,仍处于早期阶段。其 API 和命令行界面可能会发生不兼容的更改。

开始使用

要开始使用 Timoni,请访问timoni.sh上的文档网站。

概念

  • 模块- 包含 Kubernetes CUE 模板和配置模式的应用程序定义,以 OCI 工件的形式分发。
  • 实例- 引用部署在 Kubernetes 集群上的模块和工作负载的应用程序实例化。
  • 捆绑包- 将多个模块捆绑在一起的应用程序组合……

Timoni 是什么: Timoni 是 Helm 的替代方案。
它使用“bundle”命名法来打包应用程序。它还旨在管理应用程序及其 CRD 的生命周期。
它使用 CUE 数据验证语言。

优势:用户友好、部署流程简化、学习曲线平缓。

易用性: ⭐⭐⭐⭐⭐

Carvel:Kubernetes 配置的瑞士军刀

GitHub 标志 carvel-dev / carvel

Carvel 提供了一套可靠、用途明确且可组合的工具,可帮助您构建、配置应用程序并将其部署到 Kubernetes。此仓库包含有关 Carvel 开源社区的信息。

标识

OpenSSF最佳实践

卡维尔

Carvel 提供了一套可靠的、单一用途的、可组合的工具,可帮助您构建应用程序、配置应用程序并将其部署到 Kubernetes。

这是与Carvel项目相关的代码仓库列表

  • ytt - 通过 YAML 结构(而非文本文件)进行 Kubernetes 配置模板和覆盖。
  • kapp - 将多个 Kubernetes 资源作为一个“应用程序”进行安装、升级和删除
  • kbld - 以不可变的方式在 Kubernetes 配置中构建或引用容器镜像
  • imgpkg - 通过 Docker 镜像仓库打包和迁移应用程序配置(包含镜像)。
  • kapp-controller - 在 App CRD 中捕获应用程序部署工作流。由 kapp 提供支持的可靠 GitOps 体验。
  • vendir - 以声明方式指定目录中应包含哪些文件。
  • secretgen-controller - 提供 CRD 来指定集群上需要哪些密钥(生成或不生成)。

实验性的:

安装:

插件:

例如:

查看我们待办事项清单中的计划


加入

Carvel是什么: Carvel 是一套用于管理 Kubernetes 配置的一体化工具包。它提供了一系列工具,包括ytt模板工具和kapp应用程序部署工具。
您可以把它想象成一把瑞士军刀,用来微调您的 Kubernetes 设置。

优势:全面的工具包、强大的模板功能、配置管理。

易用性: ⭐⭐⭐⭐

Pulumi:用少量代码实现 Kubernetes 部署

GitHub 标志 普鲁米/普鲁米

Pulumi - 任何编程语言的基础设施即代码🚀

松弛 GitHub 讨论 NPM 版本 Python 版本 NuGet 版本 GoDoc 执照 Gitpod 即用型代码

Pulumi 的基础设施即代码 SDK是构建和部署任何架构、任何云平台上的基础设施的最简便方法,您可以使用自己熟悉且喜爱的编程语言。使用您喜爱的语言和工具,更快地编写和交付基础设施,并通过自动化 API将 IaC 嵌入到任何位置。

只需用您喜欢的编程语言编写代码,Pulumi 即可自动在AWS、 Azure 、Google Cloud Platform、 Kubernetes以及120 多个云服务提供商上配置和管理您的资源,采用基础设施即代码 (IaC) 的方式。无需编写 YAML,即可使用您熟悉且喜爱的标准语言特性,例如循环、函数、类和包管理。

例如,创建三个 Web 服务器:

const aws = require("@pulumi/aws");
const sg = new aws.ec2.SecurityGroup("web-sg", {
    ingress: [{ protocol: "tcp", fromPort: 80, toPort: 80, cidrBlocks: ["0.0.0.0/0"
Enter fullscreen mode Exit fullscreen mode

Pulumi 是什么: Pulumi 为 Kubernetes 部署带来了一种独特的变革,它允许您使用自己喜欢的编程语言将基础设施定义为代码。
它可以作为 cdk8s 的替代方案。

优势:基础设施即代码、多语言支持、易于集成。

易用性: ⭐⭐⭐⭐

Terraform:面向 Kubernetes 的基础设施即代码

GitHub 标志 HashiCorp / Terraform

Terraform 使您能够安全、可预测地创建、更改和改进基础设施。它是一个源代码可用的工具,可以将 API 编码成声明式的配置文件,这些文件可以在团队成员之间共享,并像代码一样进行编辑、审查和版本控制。

Terraform

Terraform

Terraform 是一款用于安全高效地构建、变更和版本控制基础设施的工具。Terraform 可以管理现有的常用服务提供商以及定制的内部解决方案。

Terraform 的主要特性包括:

  • 基础设施即代码:基础设施使用高级配置语法进行描述。这使得数据中心的蓝图可以进行版本控制,并像其他任何代码一样进行管理。此外,基础设施还可以共享和重用。

  • 执行计划:Terraform 有一个“规划”步骤,用于生成执行计划。执行计划展示了调用 apply 方法后 Terraform 将执行的操作。这可以避免 Terraform 在操作基础设施时出现任何意外情况。

  • 资源图:Terraform 会构建一个包含所有资源的图,并并行化创建和修改任何非依赖资源。因此,Terraform 构建……

Terraform是什么: Terraform 是基础设施即代码领域的资深工具。
它将强大的功能扩展到了 Kubernetes,提供了一种声明式的基础设施管理方式。
如果您熟悉 HashiCorp 的模板语言,hcl那么 Terraform 可以作为 kustomize 的一个有效替代方案。

优势:基础设施即代码、强大的生态系统、广泛采用。

易用性:

Grafana Tanka 与 Jsonnet:Kubernetes 配置的模板魔法

GitHub 标志 格拉法纳/坦卡

灵活、可重用且简洁的 Kubernetes 配置

格拉法纳·坦卡标志

网站·安装·教程

格拉法纳·坦卡

适用于Kubernetes集群的 YAML 的简洁、精炼且高度灵活的替代方案

  • 💥 简洁Jsonnet 语言比 YAML 更能清晰地表达你的应用程序。
  • 📚 可重用:构建库,随时导入,甚至可以在 GitHub 上共享!
  • 📌 简洁:使用 Kubernetes 库和抽象层,您将不再需要编写样板代码!
  • 🎯 自信:停止猜测,用行动tk diff看看究竟会发生什么
  • 🔭 Helm:可复现地引入、修改和导出Helm Chart。
  • 🚀 生产就绪:Tanka 已部署Grafana Cloud及更多生产环境配置

让我们一起消灭一些 YAML 代码 ▶

🚀 开始

首先,请安装 Tanka,然后按照教程操作。这样应该能让你快速上手。

👥 社区

可以通过以下几个途径与短歌社群建立联系:

Grafana Tanka是什么:它是 kustomize 的另一种替代方案,它使用 Jsonnet 模板来创建更强大、更可扩展的 Kubernetes 清单库。

优势:模板化、可靠性、动态配置。

易用性: ⭐⭐

Dhall:Kubernetes 配置中的功能纯粹性

GitHub 标志 dhall-lang / dhall-kubernetes

使用 Dhall 进行类型检查、模板化和模块化您的 Kubernetes 定义

dhall-kubernetes

dhall-kubernetes 标志

dhall-kubernetes包含Kubernetes的Dhall绑定,因此您可以从 Dhall 表达式生成 Kubernetes 对象定义。这将使您可以轻松地对 Kubernetes 定义进行类型检查、模板化和模块化。

我为什么需要这个

一旦你搭建了一个稍微复杂一些的 Kubernetes 环境,其中包含许多对象,你就会遇到以下几个问题:

  1. 用 YAML 编写定义非常冗长,真正重要的内容反而不太显眼。
  2. 我有一堆需要一起配置的对象,我该如何共享数据?
  3. 我想在不同的环境中重复使用同一个对象,但我无法使其参数化。
  4. 总的来说,我非常希望能在其他定义中重用某些定义中的部分内容。
  5. 糟糕,我输错了一个键,只能等到推送到集群后才收到错误提示 :(

人们自然而然地会倾向于使用模板语言……

Dhall 是什么: Dhall 将函数式编程的优势引入 Kubernetes 配置,作为 kustomize 和 tanka 以及 jsonnet 的替代方案。
它提供了一种声明式语言,既易于阅读又类型安全。

优势:函数式编程、类型安全、人类可读的语法。

易用性: ⭐⭐⭐

结论

总之,Kubernetes 部署领域无疑浩瀚无垠,但有了我们这份全面的速查表,您就能像经验丰富的探险家一样轻松驾驭。
从 cdk8s 的简洁易用,到 Pulumi 的编码魔法,再到 Carvel 的瑞士军刀般的精妙功能、Jsonnet 的模板魔法,以及 Dhall 的函数式纯粹,每款工具都为您在 Kubernetes 领域开辟了一条独特的道路。
以用户友好度评级为指南针,自信地开启您的部署之旅吧!
告别不知所措,迎接清晰明了——您已准备好征服 Kubernetes 世界!🚀🌐✨


Glasskube Github

文章来源:https://dev.to/glasskube/our-top-13-deployment-templated-tools-for-kubernetes-4mei