2021年必会的3个Kubernetes工具

在过去的几年中,我们看到了许多工具可以在Kubernetes上简化软件开发。随着生态系统的不断发展,有些工具会同步改进优化,而有些工具则不能适应最新的需求。2021年,有哪些工具是我们必须要掌握呢?
在本文中,我将重点介绍用于定义我们的Kubernetes应用程序的工具,即:Helm,Kustomize和Skaffold。
众所周知,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为应用程序的持续开发提供了便利。
Helm:https://helm.sh/
Kustomize:https://kustomize.io/
Skaffold:https://skaffold.dev/
文章参考:
https://www.kubernetes.org.cn/9129.html
END
(0)

相关推荐

  • Jenkins + k8s 实现企业 CI/CD 落地

    一.概述 1.1.环境介绍 我们使用的是 AWS 的 EC2 来搭建我们的集群,安装方式使用 kubeadm 来进行安装,如果使用二进制安装,可以参考我相关文档. 系统版本:ubuntu 16.04 ...

  • 在 Kubernetes 集群快速部署 KubeSphere 容器平台

    KubeSphere 不仅支持部署在 Linux 之上,还支持在已有 Kubernetes 集群之上部署 KubeSphere,自动纳管 Kubernetes 集群的已有资源与容器. 前提条件 Kub ...

  • 不是985高校,却拥有“A 学科”的46所大学,2021高考必看!

    通常来说,排名靠前的学校,尤其是985高校,都是依靠强大的学科以及综合实力作为支撑的,但是也总有一些例外,有些985高校却没有A+学科. 相反的,有一些学校不是985,却有着A+学科,一起来看. 什么 ...

  • 5G时代大有前途的15个专业和实力院校!2021报考必看

    涌入5G时代浪潮,社会也即将迎来巨变,对于2021届高考生来说,选对专业,即是成功踏入社会的第一步. 下面这15个专业,与5G时代密切相关,更难得的是,大部分毕业后薪资待遇也不错. 比如:信息工程.计 ...

  • 2021新生儿必办六大证件

    ​有了宝宝以后,新手爸妈内心充满了喜悦,却对办理宝宝的证件一头雾水,对于要带什么东西也一知半解的,我整理了一下自己当时办理的所需的证件和一些注意事项,供宝爸宝妈参考- ✔️准生证 ▪️办理时间:产前提 ...

  • 【2021高考必收藏】比较每年能上985...

    [2021高考必收藏] 比较每年能上985和211的学生平均也就在5%左右,所以大多数家长和考生十分关注,除了985和211以外,还有哪些大学实力强,学风好,社会认可度高. 今天为大家整理了985.2 ...

  • 阅卷组长曝光各科失分原因,2021高考必看!

    ▲高考评卷场标语:给分有理.扣分有据 离高考还有三十几天,对于考试的流程和使用的文具,考生和家长应该都已了解,今天就给大家分享一篇关于高考电脑阅卷的文章,来看看你的卷子在电脑系统里变成了什么? 答题俩 ...

  • 阅卷组长曝光各科失分原因,2021高考必看

    二三里资讯兰州 2021-05-03 12:21:54 高考评卷场标语:给分有理.扣分有据 离高考还有三十几天,对于考试的流程和使用的文具,考生和家长应该都已了解,今天就给大家分享一篇关于高考电脑阅卷 ...

  • 幽默到死的好文:《我有病》2021年必看!

    来源 | <施主,请留步> 作者 | 方清平 1 小时候写作文,头一句总爱说"光阴似箭,日月如梭".其实那时候总是抱怨日子过得太慢,望眼欲穿总也到不了春节. 我今年虚度 ...

  • 2021年必考宏大主题作文

    2021年必考宏大主题作文(含提纲训练和精彩范文) 1.阅读下面的材料,根据要求写作.(60分) "我们都在努力奔跑,千山万水,奔向天地跑道:你追我赶,风起云涌春潮,海阔天空,敞开温暖怀抱. ...

  • 2021中考必考知识点!轻松掌握几何辅助线的添加方法,转发收藏!

    三角形中常见辅助线的添加 与角平分线有关的: (1) 可向两边作垂线. (2)可作平行线,构造等腰三角形    (3)在角的两边截取相等的线段,构造全等三角形    与线段长度相关的: (1)截长:证 ...