写点什么

选型必看:Kubernetes 应用程序部署工具应该选哪些?

  • 2020-11-29
  • 本文字数:3033 字

    阅读完需:约 10 分钟

选型必看:Kubernetes 应用程序部署工具应该选哪些?

将应用程序部署到 Kubernetes 比较简单,但要进行大型项目管理实现配置自动化就相对复杂了,本文介绍了 Kubernetes 应用程序生命周期管理的各个阶段可能会使用的一些工具(主流非主流的都有),而且通过标注各项目背后的投资大佬,给大家提供一种选择的决策依据。


将应用程序部署到 Kubernetes 非常简单,只需要用 yaml 或 json 编写一些资源定义并将它们应用到 kubectl 中就可以了,但要实现配置自动化就相对复杂了。


在应用程序部署中,一个比较流行的做法是将持续部署和 GitOps 结合使用:每次对源代码进行更改后,资源都会自动部署。如果想要使用 GitOps 将应用程序部署到 Kubernetes,需要经历以下过程:


  • 容器映像构建, 将源代码和本地依赖关系构建到容器映像中。

  • 资源模板, 为环境定制部署资源的资源模板。

  • 包管理, 将多个资源捆绑到版本发布中,并管理包依赖关系。

  • 持续部署, 通常通过一系列操作和步骤,对环境进行更改。

  • 命令式部署, 以编程方式管理复杂的服务生命周期,并减少手动或简单的脚本化步骤。

  • 自动缩放, 根据资源使用情况和消耗情况,自动缩放来管理应用程序的响应和资源分配。


在本文中,我介绍了 Kubernetes 应用程序生命周期管理的各个阶段可能会使用的一些工具(主流非主流的都有)。由于很难客观地判断工具的流行性和成熟度, 因此我对这些工具进行了注释,说明了哪些大型公司对这些项目进行了投资,供你参考判断。不过请记住,大公司对一个项目通常可能会做多个竞争性投资,因此,仅仅因为项目拥有一位知名的投资者,并不能得出它可以长期生存和发展的结论。


希望此列表可以在你寻找应用程序部署问题解决方案时提供一些帮助。


容器镜像构建


  • Moby / buildkit (Docker) ——用于将源代码转换为构建工件的工具包。

  • kaniko (Google)—— 在容器或 Kubernetes 集群中从 Dockerfile 构建容器映像的工具。

  • img (Jess Frazelle) ——一个独立的,没有守护进程,非特权模式的 Dockerfile 和 OCI 兼容的容器映像构建器。

  • buildah (IBM/Red Hat)——用于构建开放式容器计划(OCI)容器映像的工具。

  • Source-To-Image (IBM/Red Hat)——用于从源构建工件并注入容器映像的工具。

  • Tanzu Build Service / kpack / pack (VMware/Pivotal) ——使用 Cloud Native Buildpacks 构建应用程序的 CLI 和服务。

  • Carvel / kbld (VMware/Pivotal)——用于构建映像并将其推入开发和部署工作流的服务。

  • Google Cloud Buildpacks (Google)——为运行在谷歌云的容器平台而设计的构建器和构建包。

  • Makisu (Uber) ——快速而灵活的 Docker 镜像构建工具,可以在 Mesos 和 Kubernetes 等非特权的容器环境中工作。


资源模板


  • Helm (Microsoft, Google) ——Kubernetes 包管理器。

  • Kustomize (Google, Apple)——用于定制原始的、无模板的 YAML 文件的 CLI,使原始的 YAML 保持原样并保持可用。

  • Carvel / ytt (VMware/Pivotal)——基于 YAML 结构的 YAML 模板工具。

  • jsonnet / go-jsonnet (Google) ——JSON 模板语言。

  • gomplate (Dave Henderson) ——用于 golang 模板渲染的 CLI,支持本地和远程数据源。

  • Mustache (Github) ——与框架无关的 JSON 模板引擎。

包管理



持续部署


  • Spinnaker (Netflix, Google) ——多云持续交付平台,用于快速高质量迭代发布软件变更。

  • Terraform Kubernetes Provider (Hashicorp) ——一个Terraform插件,支持 Kubernetes 资源的完整生命周期管理。

  • Concourse (VMware/Pivotal)——一个基于容器的连续事务处理程序,用 Go 和 Elm 编写。

  • JenkinsX (CloudBees)—— 用于 Kubernetes 的自动化 CI / CD,提供使用TektonKnativeLighthouseSkaffold和 Helm 的 pull 请求预览环境

  • Argo CD (Intuit)—— 用于 Kubernetes 的高效 GitOps 持续交付工具。

  • Tekton / Tekton Pipelines (Google) ——一个 Kubernetes 控制器, 提供 CI / CD 样式的管道资源。

  • Cloud Build (Google)——在谷歌云平台基础设施上执行构建的服务。

  • Skaffold (Google)——促进 Kubernetes 应用程序持续开发的 CLI。

  • Azure DevOps / Azure Pipelines (Microsoft) ——一种云服务,它可以自动构建和测试项目的代码,并将其提供给其他用户。

  • Brigade (Microsoft) —— Kubernetes 的基于事件的脚本。

  • Habitat / habitat-operator (Chef) ——Kubernetes 控制器,在 Kubernetes 上运行和管理 Habitat 服务。

  • gitkube (Hasura) ——使用 git push 在 Kubernetes 上构建和部署 Docker 镜像的工具。

命令式部署


  • Kubebuilder (CNCF, Google, Apple, IBM/Red Hat) ——用于使用 CRD 构建 Kubernetes API(以及控制器和操作符)的 SDK。

  • Operator Framework / Operator SDK (IBM/Red Hat/CoreOS) ——用于构建 Kubernetes 应用程序操作符的 SDK。

  • KUDO (D2IQ) ——使用声明式方法构建生产级 Kubernetes 操作符的框架。

  • Pulumi (Pulumi)——可以作为代码 SDK 的基础设施,用于在各种云上创建和部署使用容器、无服务器功能、托管服务和基础架构的云软件。

  • Carvel / kapp / kapp-controller (VMware/Pivotal)——CLI 和 Kubernetes 控制器,用于安装应用程序 CRD 所描述的配置(helm 图表, ytt 模板,yaml 文件)。

  • Isopod (Cruise)——在没有 YAML 的情况下,用于 Kubernetes 资源配置的表达性 DSL 和框架。


自动缩放


  • Horizontal Pod Autoscaler (built-in)—— Kubernetes 控制器,它根据配置的指标自动伸缩复制控制器、部署、复制集或有状态集中的 Pods 数量。

  • Vertical Pod Autoscaler (Google)——一组 Kubernetes 组件,自动调整运行在 Kubernetes 集群中的 pods 请求的 CPU 和内存数量。

  • Addon Resizer (Google) ——垂直 Pod 自动调用器的简化版本,它根据 Kubernetes 集群中的节点数量修改部署的资源请求。

  • KEDA (Microsoft)——一个基于 kubernet 的事件驱动的自动缩放组件。

  • Watermark Pod Autoscaler Controller (DataDog) ——扩展了 Horizontal Pod Autoscaler (HPA)的自定义控制器。

  • Pangolin (Damian Peckett)—— 针对 Kubernetes 的一个增强的 Horizontal Pod Autoscaler,它基于 Prometheus 指标来扩展部署,使用各种高度可配置的控制策略。

  • Predictive Horizontal Pod Autoscaler (IBM) —— 自定义 Pod Autoscaler,类似于 Horizontal Pod Autoscaler,但是添加了预测元素。

  • Horizontal Pod Autoscaler Operator (Banzai Cloud)——Kubernetes 控制器,它监视部署或状态集,并基于 autoscale 注释自动创建 Horizontal Pod Autoscaler 资源。


写在最后


正如 DevOps 倡导者宣扬的那样:这与工具无关,而与观念有关。没有一个工具能给你带来让你兴奋的全生命周期端到端管理体验,因为每种工具都有他们自己的工具组合,通过与脚本和集成代码配合完成工作。


你可以找到能够很好地完成一件事情的工具,易于替换和扩展,也可以选择为你提供最大性价比的工具,让你更容易对项目进行管理,集成成本也更低,同时还拥有较好的端到端用户体验。以上的选择都没有什么错。


权衡这些因素后,你还需要看看这些项目背后的大佬,它是哪家公司投资的、项目的流行度如何?那些拥有大型公司或者有着多样化投资者的主流工具更具有持续成长性。不然,你选择后,项目不更新或者被抛弃了,那你只能花自己的时间和精力来维护这些工具了。


原文链接


https://medium.com/@KarlKFI/compendium-of-kubernetes-application-deployment-tools-80a828c91e8f


2020-11-29 17:342755

评论

发布
暂无评论
发现更多内容

2025,AI会成为职场中的“超级助理”吗?

Techinsight

【HarmonyOS Next】鸿蒙中App、HAP、HAR、HSP概念详解

GeorgeGcs

鸿蒙 HarmonyOS NEXT HAP HSP HAR

【HarmonyOS】鸿蒙原生分享之“碰一碰”分享(APP内实现)

走向菜鸟的菜鸟

鸿蒙 HarmonyOS ArkTS HarmonyOS NEXT 实践分享

【HarmonyOS】关于鸿蒙原生项目多环境的配置和管理

走向菜鸟的菜鸟

鸿蒙 HarmonyOS ArkTS HarmonyOS NEXT 实践分享

原生APP开发的成本

北京木奇移动技术有限公司

APP开发 软件外包公司 APP外包公司

BOE(京东方)携手京东发起百吋电视品牌联盟发布会 引领家庭视听正式迈入大屏时代

科技热闻

陌陌IDC Redis如何基于阿里云DTS实现云上容灾

童子龙

redis 底层原理 数据同步工具 容灾备份

KWDB 开源社区走进南开大学

KaiwuDB

KaiwuDB 校园 学校

美通社母公司Cision联合PRWeek发布《2025企业传播报告》

财见

StarRocks 主键(Primary Key)深度解析

镜舟科技

数据仓库 数据分析 分析型数据库 物化视图 StarRocks 主键

Veritas NetBackup 11 for Linux & Windows - 领先的企业备份和恢复解决方案

sysin

NetBackup

海信激光电视探索X1亮相AWE 2025 重塑家庭观影新标准

新消费日报

英伟达黄仁勋GTC演讲,算力和数据等基础设施驱动AI蓬勃发展

PowerVerse

算力 AGI DePIN GTC2025

【HarmonyOS Next】鸿蒙应用弹框和提示气泡详解(一)

GeorgeGcs

ios android 鸿蒙 HarmonyOS OpenHarmony

深度剖析:微软 2025 年 AI 预测背后的技术走向

Techinsight

月暗推出音频模型 AudioX:任意内容生成音频和配乐;开源 TTS 模型 Orpheus,可生成叹息、笑声等非文本线索丨日报

声网

【HarmonyOS】关于鸿蒙原生实现红包雨效果的方案设计

走向菜鸟的菜鸟

鸿蒙 HarmonyOS ArkTS HarmonyOS NEXT 实践分享

【HarmonyOS】鸿蒙原生实现3DTouch快捷方式

走向菜鸟的菜鸟

鸿蒙 HarmonyOS ArkTS HarmonyOS NEXT 实践分享

【HarmonyOS】鸿蒙原生实现应用间跳转之App Linking

走向菜鸟的菜鸟

鸿蒙 HarmonyOS ArkTS HarmonyOS NEXT 实践分享

数字化转型全攻略,普通人抓住这些关键

Techinsight

SvelteKit 最新中文文档教程(7)—— 构建和部署

冴羽

vue.js 前端 React Svelte SvelteKit

MHP和慕尼黑LMU发布《2025年工业4.0晴雨表》

财见

AI数字人的测试

北京木奇移动技术有限公司

AI智能体 软件外包公司 AI数字人

拆解数字化转型成本困局:基于AI增强型低代码平台的行业落地案例研究

不在线第一只蜗牛

AI 低代码

Second Me:在 AI 中保留自我的火种丨社区来稿

声网

【HarmonyOS】鸿蒙原生实现应用间跳转之Deep Linking

走向菜鸟的菜鸟

鸿蒙 HarmonyOS ArkTS HarmonyOS NEXT

2025企业财务数智化峰会·湖南站,在长沙成功举办!

用友智能财务

AI 财务 数智化 会计

MiniMax GenAI 可观测性分析:基于阿里云 SelectDB 构建 PB 级别日志系统

SelectDB

数据库 日志分析 存算分离 大模型 GenAI

JimuReport与deepseek结合,颠覆现有BI模式

JEECG低代码

数据分析 数据可视化 积木报表 报表工具

HUAWEI Pura X瞩目首发,华为游戏中心携手伙伴重塑鸿蒙游戏体验

最新动态

【HarmonyOS】关于鸿蒙原生使用原生相机实现扫一扫功能

走向菜鸟的菜鸟

鸿蒙 HarmonyOS ArkTS HarmonyOS NEXT 实践分享

选型必看:Kubernetes 应用程序部署工具应该选哪些?_服务革新_Karl Isenberg_InfoQ精选文章