写点什么

2021 年,开发者必备的 3 款 Kubernetes 工具

  • 2021-05-31
  • 本文字数:2620 字

    阅读完需:约 9 分钟

2021年,开发者必备的3款Kubernetes工具

在过去几年,我们看到有大量工具被开发出来,用于简化在 Kubernetes 上的软件开发。正如生态系统中,优胜劣汰、适者生存一样,功能强大、操作便利的工具会不断壮大,反之,则不会被使用者接受。那么,2021 年,有哪些好工具供我们使用?


本文将重点介绍 Kubernetes 应用程序的工具:Helm、Kustomize、Skaffold

Kubernetes 清单(YAML)

如果你是 Kubernetes 的新用户,建议浏览这个网站,里面有详细介绍。


你首先需要了解,Kubernets 具有编排应用的声明式方法。你可以将期望的应用状态写入 YAML 格式的配置文件,即所谓“manifest”,然后将其发送给 Kubernetes 后台,即可实现相应操作。

Helm

Helm 是 Kubernetes 的包管理工具,可以打包、共享和部署 K8s 应用。将 Helm 视为一个包管理器——它允许用户将多个 YAML 配置文件片段到“图表”的逻辑程序包中。即主要用来管理图表。它让你可以用一种一致的、结构​​化的方式将多个 YAML 配置片段分组到一个称为“chart”的逻辑包中。


作为包制作者,创建 Helm Chart 有以下好处:


  1. 可以在部署应用时使用自定义参数实现应用程序可配置。为此,可以使用模板

  2. 可以通过版本化和可追踪方式将应用程序发布到私有或公共的软件存储库中

  3. 可以将你的应用程序依赖于其他的 Helm Chart

  4. 总体而言,Helm 可以提供强大的封装机制,以确保应用程序按预期部署。


作为包使用者,安装 Helm Chart 可以获得更多好处:


  1. 可以访问内容丰富的存储库,其中既有公开发布的 Chart,也有组织提供的私有 Chart。

  2. 可以根据程序包制作者提供的设置来自定义应用程序

  3. 拥有部署软件包的正版资源

  4. 不必担心 Kubernetes 规范语言的复杂性

  5. Helm 支持原子操作,最大程度上降低应用程序和集群的风险。

  6. 总体而言,您可以获得一个易于理解且可以即时可用的应用程序包。

Helm 有什么新功能?

2019 年末,Helm v3 发布,删除了集群组件(Tiller)和许多其他的功能。2020 年底,Helm v3 逐渐取代 Helm v2,大多数公共 Charts 已经改成了 v3 的格式。如果你还在使用 Helm v2,务必要安排时间升级近期软件路线图(升级时可以看下这个插件,可能会有所帮助)。


在最近的几个发行版中,Helm 团队一直致力于解决用户的其中一个最大的烦恼——YAML 模板使用难度大。目前 Helm 开发出了一个功能强大的 linting命令,可以解决在调试 YAML 时所遇到的部分问题。


Helm 中又添加了一个后期渲染功能,使用户可以使用 Kustomize 等工具自定义 Helm 图表。


最后但也同样是重要的,2020 年,Helm 也开始向去中心化的图表管理方式转变,并推出了两个共享的中心存储库:


  • ArtifactHub

  • ChartCenter


下载地址:https://helm.sh/

Kustomize

Helm 的最大缺点是应用程序的设置仅限于预先存在的配置选项。并且,图表作者还必须以有些麻烦的模板方式来实现这些自定义选项。Kustomize可以弥补这些缺点。


Kustomize 允许用户将 Kubernetes 应用程序构建为一系列的层和补丁,从而实现没有限制的自定义。Kustomize 使用基于 YAML 文件的、Kubernetes 可识别的补丁格式来添加/删除/更新应用程序清单的任何部分。Kustomize 在1.14版本中成为了kubectl 中不可或缺的一部分,要调用它,用户需要做的就是执行 kubectl-k 命令。


Kustomize 是一个功能强大的工具,可以让用户以所需要的任何方式来修改 Kubernetes 应用程序。但是,这就意味着学习起来有些困难,因为定制方案的过于随意会导致出错的可能性大大提高。Kustomize 有一种高级用法,使用 Helm 的后期渲染功能来修补现有的 Helm 图表。这样就无需再另做版本分支,使得版本升级变得更加方便。

Kustomize 有什么新功能?

为了添加上 Kustomize 的功能,Kubernets 生态系统中的许多工具都内嵌了 Kustomize。最突出的案例是编排和持续部署工具,如ArgoCDFluxKubestack这三种工具。如果用户搜索类似于补丁功能的工具,去查看你的 CD 工具,就可以找到它。


如果用户不熟悉 Kubernetes 的构建过程,可能就不知道在初始集成期间,维护人员将嵌入 Kubectl 的 Kustomize 版本冻结在了 2.0.3。这不仅使得文档更加令人困惑了,也让 Kubectl 内嵌的版本缺少了过去两年所做的大量增强功能,希望负责该部分的维护团队可以快速解决这个问题。同时,如果用户需要最新版本,可以考虑使用 Kustomize 作为独立的 CLI 工具。

Skaffold

Skaffold的作法有些不同,它遵循 DevOps 的最佳实践,在 SDLC 中保持开发环境和工作流程的一致性。Skaffold 为开发流程、持续集成及持续部署构建和部署 Kubernetes 应用程序。


在构建过程中,Skaffold 可以使用 Dockerfiles、Buildpacks、Bazel,甚至是自定义的脚本。对于部署,Skaffold 所使用的模板引擎是有限的,但可以调用 Kubectl,Helm 或者 Kustomize。


Skaffold 有三种主要的操作模式:


  1. skaffold dev——此模式可以在一个“观察,构建,部署”循环中运行 Skaffold。在这种模式下,用户可以在本地编辑源文件,Skaffold 将它们部署到用户选择的集群中。Skaffold 支持端口转发和日志追踪,以便在这种模式下工作时能够获得更流畅的开发体验。

  2. scaffold build——此模式可以运行 Skaffold 来构建用户的工件,并将其放置在用户所选择的存储库中。

  3. scaffold deploy——此模式将用户构建的应用程序部署到用户所选择的集群中,也可能可以用于 Helm 和 Kustomize。如果想要使用单个命令来构建和部署,可以使用 Skaffold run。

Skaffold 有什么新功能?

2020 年,Skaffold 团队致力于使得 Skaffold 更易适应各种工作流程,并实现与其他工具的交互操作。改进点包括与 CI/CD 和 GitOps 更灵活的集成,以及对 Python 和 Java 语言更好地支持。


此外,Skaffold 在 Beta 版本中有一个新的操作模式skaffold debug。在这种新模式下,配置应用程序运行时,实现自动远程调试。这个功能在微服务环境下,使用远程操控集群时,应用传统的调试器比较困难。如果用户在这方面遇到麻烦,可以查看一下类似于 Rookout 这样的不间断调试器。

总结

在打包、部署和共享众人皆知的 Kubernetes 应用程序清单方面,我们可以明显看到,市场在整合。CNCF 在这方面做的非常好,具有很多目前为止看来很先进的工具,其中包括 Helm(CNCF 的一个官方项目)、集成到 kubectl 中的 Kustomize 和许多其他工具。像 Kubernetes 系统的其他部分一样,这方面的工具目前做得已经非常成熟了,且每个工具都有其各自的特点。


使用 Helm 打包、共享和安装定义完备的 Kubernetes 应用程序。使用 Kustomize 补丁修改现有的 Kubernetes 应用程序。Skaffold 这个工具也很有用(也很受欢迎!),但配置 Kubernetes 应用程序并不是它的主要功能。


原文链接:


https://dzone.com/articles/developer-tooling-for-kubernetes-in-2021-helm-kust?fileGuid=vrvQpyxYcpQJt6YG

2021-05-31 11:354133

评论

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

新手必看!Bitget Wallet 和 Metamask 到底该选谁?真实对比评测

BlockChain先知

请查收:赛博威TPM营销费用管理指南——费用管理类型篇

赛博威科技

营销数字化

低代码开发不可能取代程序员

互联网工科生

低代码

国产化即时通讯平台WorkPlus,助力企业实现自主可控的沟通与协作

WorkPlus

设计师、教师、奶爸从零开始做提示词,文心一言APP让提示词“人人可用”

彭飞

AI 帮写爬虫,真的吗? CodeWhisperer:当然!

梦想橡皮擦

Web3 新手攻略:9个不可或缺的APP助力你踏入加密领域

鳄鱼视界

Web3 新手攻略:9 个不可或缺的 APP 助力你踏入加密领域

威廉META

WorkPlus一站式解决方案,助力企业构建统一门户系统

WorkPlus

百度世界2023剧透丨百度王颖:百度文库每周上线2-3个AI新功能,累计使用次数近亿

彭飞

Web3 新手攻略:9个不可或缺的APP助力你踏入加密领域

股市老人

基于 ACK Fluid 的混合云优化数据访问(三):加速第三方存储的读访问,降本增效并行

阿里巴巴云原生

阿里云 云原生 容器服务

除了Office,这8款好用的办公软件也值得推荐!

彭宏豪95

效率 职场 软件推荐 在线白板 办公软件

华为云API图像搜索ImageSearch的快捷性—AI帮助您快速归类图片

YG科技

Linux是什么,其特点是啥

芯动大师

Redis Scan原理

宁静知行者

redis 底层原理

最高评级!华为云CodeArts Board获信通院软件研发效能度量平台先进级认证

YG科技

华为云发布CodeArts Governance开源治理服务,开源使用更安心

YG科技

别再说被八股文害惨了!GitHub阿里Java面试题库标星145K不无道理

程序员万金游

#java #面试 #编程 #程序员 #Mysql

华为云持续扎根软件工具生态,突破10倍研发效能赋能千行百业

YG科技

华为云API图像识别Image的趣味性—AI识别迈克尔·杰克逊

YG科技

Python 集合(Sets)1

小万哥

Python 程序员 软件 后端 开发

WorkPlus私有部署即时通信助力企业信息安全与高效协作

WorkPlus

天谋科技与华为鲲鹏完成兼容性互认证

Apache IoTDB

百度世界2023剧透丨肖阳:「语义检索技术+大语言模型」融合,百度「新搜索」将亮相

彭飞

终极对决!Bitget Wallet vs Metamask 钱包大比较!隐藏功能曝光

石头财经

代码混淆界面介绍

雪奈椰子

Apache IoTDB 作为合作伙伴参加 Doris Summit Asia 2023!

Apache IoTDB

Last Week in Milvus

Zilliz

非结构化数据 Milvus Zilliz AIGC

2021年,开发者必备的3款Kubernetes工具_云原生_Liran Haimovitch_InfoQ精选文章