Sur*_*noi 16 kubernetes kubernetes-helm
据我了解所有这些工具,Draft,Helm和Ksonnet具有重叠功能,例如创建图表以及部署kubernetes配置.
我知道这些工具的目的是描述和配置应用程序以及k8s环境.
通过使用Draft,我们可以创建Dockerfile,Chart.不过我们可以和Helm和Ksonnet做同样的事情.
我的问题是,如果这些组件在CI/CD中创建管道,那么订单是什么?
例如,
草稿 - > ksonnet>掌舵 或
草稿 - >掌舵 - > ksonnet
小智 36
简而言之,草案和掌舵或多或少是互补的,ksonnet是正交的,特别是提供了掌舵的替代方案.
在详细阐述中,我将把我的答案分成三个主要部分,第一部分描述了草稿和掌舵如何相互作用,第二部分描述了ksonnet如何与其他部分正交,最后一部分解释了我如何理解CI/CD .
Helm和Draft是互补的,因为Helm可以被认为是Kubernetes的包管理系统,它提供了Draft提供的部分功能,它本身就是Kubernetes应用程序开发工具.
草案和头盔之间的关系可以通过指出为了实现其简化Kubernetes应用程序开发的目标而总结,草案使用从当前应用程序类型推断的元数据生成Helm图表(如果尚未存在,则生成以下内容)使用和现有的,以便部署/更新应用程序的开发版本,而无需了解它是如何做到的.
如前所述,Helm是基于Kubernetes的应用程序的包管理系统.它提供以下功能:
Helm采用模板化的YAML方法来参数化Kubernetes清单,并允许在依赖包之间共享和覆盖值.即,假设包A取决于包B; 程序包A可以重用在程序包B上设置的配置值,它可以使用自己的值覆盖这些参数.也可以使用Helm命令行工具覆盖给定部署中所有包的值.
另外值得一提的是,Helm依赖于其名为"Tiller"的集群端组件的可用性来实际执行模板化和将生成的Kubernetes清单部署到集群的工作.
草案的目的是通过快速构建和部署运行项目所需的Helm图表/包和相应的docker镜像来大大简化Kubernetes应用程序的开发 - 前提是存在以下内容:
该草案安装指南提供了获取这些作品设立尝试一下自己的详细信息.
Draft还以Helm为基础,提供了一种高级"打包"格式,包括应用程序头盔图和Dockerfile,后者使其能够构建docker镜像.
最后,它内置了对特定编程语言的支持,并将在有限的范围内尝试推断您在最初使用时创建新的Draft项目时使用的编程语言和框架draft create.
如前所述,Ksonnet在许多方面与Helm正交,在包装管理方面提供了与不同术语相同的功能 - 请参阅其核心概念文档.值得注意的是,它与草案不兼容,也没有解决与草案相同的问题.
我说Ksonnet和Helm是正交的,因为它们采用互不兼容的方法来生成和部署Kubernetes清单.Helm使用模板化的YAML,而Ksonnet使用称为Jsonnet的"数据模板"语言生成Kubernetes清单.而且,与Helm一样,Ksonnet不是像"Helm"那样构思"依赖"包,而是通过将它们表示为可组合的"原型"来模糊依赖服务之间的界限.最后,Ksonnet不是依赖于集群端应用程序来实现清单模板,而是具有apply类似于的子命令kubectl apply.
那么这些部分在哪里适合CI/CD工作流程?好吧,因为基本上有两个互不兼容的工具集,让我们根据具体情况考虑它们:
根据草案设计问答部分,它只是作为一个开发人员工具,旨在从主要有兴趣看到他们的应用程序在开发集群中运行的开发人员中抽象出处理kubernetes,helm和docker的大部分复杂性.
考虑到这一点,涉及这组工具的任何CD方法都必须执行以下操作:
docker如有必要,使用CLI 构建docker镜像helmCLI 构建Helm软件包helmCLI 将Helm软件包部署到Helm存储库helmCLI 在适当的staging/prod Kubernetes集群上安装/更新Helm软件包与helm上面的工作流程相比,Ksonnet CD工作流程略有缩写:
docker如有必要,使用CLI 构建docker镜像ksCLI 应用Ksonnet清单而使用Helm,您可以将您的应用程序包部署到Helm注册表以供重用,如果您的Ksonnet清单包含可用于另一个基于Ksonnet的应用程序的可重用原型,您可能希望确保它在git仓库中可用如Ksonnet注册表文档中所述.
这意味着CI/CD中处理Ksonnet定义的方式在很大程度上取决于您决定将哪些git repo存储在其中以及它们的结构.
| 归档时间: |
|
| 查看次数: |
4477 次 |
| 最近记录: |