![]() |
1
42
简言之 草稿 和 掌舵人 或多或少是免费的 ksonnet公司 是正交的,特别是提供了 掌舵人 . 在详细阐述时,我将把我的答案分为三个主要部分,第一部分描述如何 草稿 和 掌舵人 互动,第二个描述如何 ksonnet公司 与其他内容是正交的,最后一节解释了我如何理解CI/CD中的这些内容。 舵手和;草稿Helm和Draft是互补的,因为Helm可以被视为Kubernetes的包管理系统,它提供了Draft提供的部分功能,Draft本身本质上是Kubernetes应用程序开发工具。 Draft和Helm之间的关系可以总结为,为了实现简化Kubernetes应用程序开发的目标,Draft使用从当前应用程序类型推断出的元数据(更多信息,请参见下文)生成掌舵图,前提是当前应用程序类型尚不存在或使用现有应用程序,以便部署/更新应用程序的开发版本,而无需知道它是如何做到这一点的。 Kubernetes软件包管理负责人如前所述,Helm是基于Kubernetes的应用程序的包管理系统。它提供以下功能:
Helm采用模板化的YAML方法来参数化Kubernetes清单,并允许在依赖包之间共享和重写值。即,假定的包A取决于包B;包A可以重用在包B上设置的配置值,并且可以使用自己的值重写这些参数。还可以使用Helm命令行工具覆盖给定部署中所有包的值。 还值得一提的是,Helm依赖于其名为“Tiller”的集群端组件的可用性来实际完成具体化模板和将生成的Kubernetes清单部署到集群的工作。 Kubernetes应用程序开发草案草案的目的是 dramatically simplify development of Kubernetes applications 通过快速构建和部署运行项目所需的Helm图表/包和相应的docker映像,前提是存在以下情况:
这个 draft installation guide 提供有关如何设置这些部件以便自己尝试的详细信息。 Draft还以Helm为基础,提供了一种高级“打包”格式,其中包括应用程序Helm图表和Dockerfile,后者使其能够构建docker图像。
最后,它内置了对特定编程语言的支持,并将在一定程度上尝试推断您在最初创建新的草案项目时使用的编程语言和框架
Ksonet for Kubernetes包管理如前所述,Ksonnet在许多方面都是正交的,在包管理方面提供了本质上相同的特性,这些特性用不同的术语包装——请参见 core concepts documentation . 值得注意的是,它与草案不兼容,也没有解决与草案相同的问题。
我说Ksonnet和Helm是正交的,因为它们采用互不兼容的方法来生成和部署Kubernetes清单。Helm使用模板化的YAML,而Ksonet使用
"data templating" language called Jsonnet
. 此外,与Helm一样,Ksonet没有设想“依赖”包,而是将依赖服务表示为可组合的“原型”,从而模糊了它们之间的界限。最后,与依赖于具体化和部署清单模板的集群端应用程序不同,Ksonnet有一个
CI/CD那么,这些内容在CI/CD工作流中的位置如何?既然基本上有两个互不兼容的工具集,那么让我们逐个考虑它们: 吃水+掌舵根据 the Draft design Q&A section ,它只是作为一种开发人员工具,旨在从主要对在开发集群中运行应用程序感兴趣的开发人员那里抽象出处理kubernetes、helm和docker的复杂性。 考虑到这一点,任何涉及这套工具的CD方法都必须执行以下操作:
Ksonnet公司
与
然而,如果您的Ksonnet清单包含 re-usable prototypes 这可能对另一个基于Ksonnet的应用程序有用,您希望确保它在git repo中可用,如 Ksonnet registry documentation. 这意味着在CI/CD中如何处理Ksonnet定义在很大程度上取决于您决定将其存储在哪个git repo中以及它们的结构。 |
![]() |
ralonr · 当上下文已经设置好时,如何在K9中的上下文之间切换? 2 年前 |
![]() |
Dr. Andrew · kubectl运行时未创建部署 2 年前 |
![]() |
Abhishek Rai · 库伯内特斯吊舱卡在集装箱内 2 年前 |
![]() |
TiDu · 使用EKS设置出口网关的最简单方法,无需Istio 3 年前 |