原文发表于kubernetes中文社区,为作者原创翻译 ,原文地址

更多kubernetes文章,请多关注kubernetes中文社区

目录

Kubernetes

Helm

Helm有什么新功能?

Kustomize

Kustomize有什么新功能?

Skaffold

Skaffold有什么新功能?

总结


在过去的几年中,我们看到了许多工具可以在Kubernetes上简化软件开发。随着Kubernetes生态系统的不断发展,有些工具会同步改进优化,而有些工具则不能适应最新的需求。在2021年,有哪些工具是我们必须要掌握呢?

在本文中,我将重点介绍Kubernetes中的几个工具,即:Helm,Kustomize和Skaffold。

Kubernetes

众所周知,Kubernetes有一种编排应用程序的声明性方法。你以YAML格式将应用程序的期望状态写入配置文件(称为“清单”),然后将其发送到Kubernetes使其实现。

Helm

Helm 帮助您管理 Kubernetes 应用程序。Helm Charts 帮助您定义、安装和升级最复杂的 Kubernetes 应用程序。

Helm 可以使用 Charts 启动 Kubernetes 集群。

Helm是统治之王,是打包,共享和部署k8s应用程序的事实上的标准。Helm被视为是Kubernetes的包管理工具,它允许你以一致且结构化的方式将多个YAML配置分组为一个称为“chart ”的逻辑软件包。

对于应用发布者而言,创建Helm Charts 可为你带来很多好处:

  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 v2,大多数公共chart已迁移到v3格式。如果你仍在使用Helm v2,请尽快安排升级。

在最近的几个发行版中,Helm团队一直在忙于解决Helm用户最大的抱怨-使用YAML模板的困难。现在Helm包括一个功能强大的Lint命令,当调试YAML问题时,它应该是你的新向导。

Post Rendering功能是Helm中的另一个新功能,使你可以使用Kustomize等工具自定义Helm chart 。

2020年chart管理方式,开始向去中心化的的转变,并推出了两个用于共享chart的中央存储库:

  1. CNCF的ArtifactHub
  2. JFrog的ChartCenter

Kustomize

Helm的最大缺点是,应用程序的定制仅限于预先存在的配置选项。不仅如此,chart创建者还必须以某种复杂的模板方式来实现这些自定义选项。这就是Kustomize的用武之地。

Kustomize 是一个独立的工具,用来通过 kustomization 文件 定制 Kubernetes 对象,它允许你将Kubernetes应用程序构建为一系列的层和补丁,从而实现无限的自定义。通过使用 Kustomize ,也可以实现对 Kubernetes 对象进行声明式管理。

从 Kubernetes 1.14 版本开始,kubectl 也开始支持使用 kustomization 文件来管理 Kubernetes 对象。 要查看包含 kustomization 文件的目录中的资源,执行下面的命令:

kubectl kustomize <kustomization_directory>

要应用这些资源,使用参数 --kustomize 或 -k 标志来执行 kubectl apply:

kubectl apply -k <kustomization_directory>

Kustomize是一个功能强大的工具,可让你以所需的任何方式修改Kubernetes应用程序。不幸的是,这意味着学习曲线可能非常陡峭。任意定制,还意味着错误配置应用程序的可能性增加。

Kustomize的一种高级用例,是使用了Helm的Post Rendering功能来完善现有的Helm chart功能 ,从而有望使版本升级变得平滑。

Kustomize有什么新功能?

Kubernetes生态系统中的许多工具都嵌入了Kustomize,最突出的例子是编排和持续部署工具,例如 ArgoCD,Flux和Kubestack。

要知道的是, kubectl内的Kustomize版本缺少大量的增强功能,如果需要这些功能,请考虑使用Kustomize作为独立的CLI工具。

Skaffold

Skaffold是干啥的?

Google的软件工程师Nick Kubala解释说:我们注意到k8s的用户在构建和管理容器镜像方面花的时间太长了,需要手动更新k8s清单,即使进行很少的代码更新都要重新部署一次应用。于是我们就打算开发个工具来自动化完成这些任务,让用户可以专注于代码本身,而不是做这些重复性工作。

Skaffold 是一个命令行工具,有助于 Kubernetes 应用程序的持续开发。

Skaffold遵循DevOps最佳做法。使用Skaffold,你可以方便的将本地代码部署到kubernetes上进行测试。通过 skaffold.yaml ,你可以管理项目的构建(build)和部署(deploy)过程。

对于构建,Skaffold可以利用Dockerfiles,Buildpacks,Bazel甚至是自定义脚本。对于部署,Skaffold包含其有限的模板引擎,并且可以调用kubectl,Helm或Kustomize。

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

  1. skaffold dev-变更代码自动部署应用。可以随时监测代码更改,然后随时rebuild和redeploy到用户的集群里。
  2. skaffold build-这将构建你的应用程序,并将其推送到你选择的存储库中。
  3. skaffold deploy-这会将你构建的应用程序部署到你选择的集群中,可能会利用Helm或Kustomize来实现。如果要使用单个命令进行构建和部署,则可以使用skaffold run。

Skaffold有什么新功能?

2020年,Skaffold团队致力于使该项目更易于适应各种工作流程,并与其他工具实现更高的互操作性。其中的一些改进包括与CI/CD和GitOps更灵活的集成,以及对Python和Java的更好支持。

此外,skaffold debug可以对应用程序进行远程调试。尽管这是一个很好的功能,但是在微服务环境中使用它是比较棘手的,我们强烈建议你使用Rookout工具。

总结

在打包,部署和共享的Kubernetes应用程序清单时,可以使用Helm打包,共享和安装Kubernetes应用程序;使用Kustomize通过补丁来修改现有的Kubernetes应用程序。Skaffold则为应用程序的持续开发提供了便利。

译文链接: https://dzone.com/articles/developer-tooling-for-kubernetes-in-2021-helm-kust

2021年必会的3个Kubernetes工具相关推荐

  1. 2021年最新 k8s安装部署步骤 kubernetes从入门到实践 K8S实战容器化迁移实战教程 K8S存储之Ceph分布式存储系统 K8S架构师实战指南

    2021年最新 k8s安装部署步骤 kubernetes从入门到实践 K8S实战容器化迁移实战教程 K8S存储之Ceph分布式存储系统 K8S架构师实战指南

  2. 2021 年最值得了解的 Node.js 工具(下)

    大家好,我是若川,诚邀你加群长期交流.今天分享一篇用得上的 node 库.下篇.链接地址:https://github.com/huaize2020/awesome-nodejs. 上篇是:2021 ...

  3. 爆测一周,22年必看最细致代码托管工具测评

    简介:网上代码托管选型的文章不少,不过大多内容有点久远,很多最新的平台没有包括进来,个人花了大概一个星期的时间,把目前市面上比较火的代码托管平台(开源托管平台:Github.Gitee:企业级托管平台 ...

  4. 16款设计师必知晓的思维导图工具

    什么是脑图 脑图,也叫心智图,通常是用来围绕一个关键词或者思路来梳理思路.设定任务.管理项目的示意图.脑图将思维的路径图形化,条理化,以非线性的方式整合起来,促使头脑风暴式的集思广益能够最终落实成为有 ...

  5. 2021年最实用的12款SEO工具

    最近有很多卖家朋友问到,关于查询谷歌独立站SEO的各种工具,那么今天我来总结一下 2021年最实用的12款SEO工具 .我自己列表中收藏了以及用过的50多款工具,但今天要分享的工具只有12个,只要把这 ...

  6. 2021年最新考勤记录表排表小工具

    2021年最新考勤记录表排表小工具简介 本工具可以自动将考勤记录表 按人与日期排序转化 重新输出Excel,输出的Excel可以直接打印(横向每页三人考勤) [行政人事必备之神器] 每月考勤表制作工具 ...

  7. 50多种 Kubernetes 工具汇总

    50多种 Kubernetes工具 原文链接:https://caylent.com/50-useful-kubernetes-tools-for-2020 在过去几年,Kubernetes 在容器编 ...

  8. 北京小学 计算机派位,北京小升初东西海朝4区电脑派位规则汇总 2021家长必看...

    近日有很多2021家长咨询,北京小升初各区入学途径电脑派位规则是怎样的?下面北京小升初网以2020北京各区小升初政策为基准,整理了海淀.西城.东城.朝阳.丰台等区小升初时电脑派位录取规则相关信息,旨在 ...

  9. Kubernetes【升级】 CKS 2021【11】---Cluster Hardening - Upgrade Kubernetes

    文章目录 1. 介绍 2. Practice - Create outdated cluster 3. Upgrade master node 4. Upgrade worker node 1. 介绍 ...

最新文章

  1. 剑指Offer——当当+搜狐+好未来笔试题+知识点总结
  2. 白钢条用什么可以切割_错怪李佳琦了!原来用小苏打刷牙,1个月真的可以白4度,太心动了...
  3. java代码从编译到加载执行的过程
  4. 移动 Web 设计中的一些错误理念
  5. python二级考试选择题公共基础知识_计算机二级Python易忘考点整理
  6. 解决XP的IIS HTTP 500”内部服务器错误
  7. python编程-Python 网络编程
  8. ECMAScript 学习笔记03
  9. 联想小新air13pro重装系统_小新air13pro改win7系统 联想小新air13pro安装win7系统教程...
  10. Proe/Creo元件替换的方法
  11. 【考研复习】《操作系统原理》孟庆昌等编著课后习题+答案——第四章
  12. 松散四叉树+网格法实现
  13. 3GPP协议下载地址
  14. 如何提高Python编程能力?
  15. 2018年阿里安全工程师面试
  16. php 输出七芒星,SongNet:硬格式控制下的文本生成
  17. 在我的网站   Φ十三月网Φ  开站前的宣传,当我是炒作,造势都可以,但是我们要的是有内涵。
  18. 【数据集】各类绝缘子、鸟巢及防震锤数据集汇总
  19. 铁路及工程相关专业术语自动查询
  20. Gateway网关下载启动

热门文章

  1. Windows安装TVM详细教程及报错提示
  2. h5故障代码_格力变频空调显示故障代码“H5”维修方法与流程
  3. 从大数据看技术,为什么天猫双11是史上最大数字经济节日
  4. form表单往后台传日期
  5. 汇编指令mrs_(转)ARM汇编学习笔记——MRS和MSR指令
  6. 别笑话爬虫工程师了,数仓库工程师也被警察传话了。
  7. 数据链路层 (一)------ 计算机网络(三)
  8. html页面计算圆的周长和面积,计算圆的周长和面积(VB)
  9. kickstart自动化系统安装_利用Kickstart自动化安装CentOS的教程
  10. navicat mysql 百度云_转载:用navicat连接百度云服务器上的mysql数据库