过去几年以来,容器技术的普及程度一直在不断提高。然而,这种技术的具体效用在企业规模场景下却往往难以量化。
近期 Pivotal 推出了一系列产品,希望帮助企业通过 Kubernetes 原生工具链获得更多的回报,Pivotal Build Service 就是其中的一个代表性的工具。
Build Service 可帮助开发团队持续构建、维护以及更新生产就绪型 OCI 镜像,其包含了两大核心组件:Cloud Native Buildpakcs 以及自主研发的 Kubernetes 资源控制器。
其中 Cloud Native Buildpacks 是由 Pivotal 与 Heroku 联合研发,能够以一致且可重现的方式构建模块与镜像,生成的镜像能够实现随处运行;第二大组件则是kpack,属于一组 Kubernetes 资源控制器,也正是我们今天文章的探讨主体。(感兴趣的朋友可以点击此处查看 Kubernetes 资源说明文档。)
kpack:一种 Kubernetes 原生容器构建与更新方式
我们希望在 Build Service 中将 Cloud Native Buildpacks 体验与 Kubernetes 的声明模式相结合,并以大家熟悉的方式扩展 Kubernetes 工作流程。立足这一目标,我们利用定制化资源定义对 Kubernetes API 进行了扩展。如此一来,我们就可以利用 Kubernetes 技术建立起一个可组合的声明式架构,进而用于构建服务。定制化资源定义(CRD)由定制化控制器负责协调,用于实现容器镜像的自动化构建,并可根据用户提供的配置随时对镜像加以更新。
Pivotal kpack 商业实现方案由 Pivotal Build Service 提供,能够在 Kubernetes 上提高开发人员的工作效率。Build Service 将 kpack 与 buildpacks 以及 Kubernetes 权限模式等其它实用工具整合起来,用户还可以使用 pb 可选专用 CLI 提升工程师工作效率,并配合 teams 降低多租户环境管理。
为了提供 Kubernetes 原生体验,Pivotal 在 kpack 项目之内对多个 Kubernetes 原生组件进行了开源。kpack 提供一个 CRD 作为其接口,用户可以借此与全部 Kubernetes API 工具进行交互,其中也包括 kubectl。
为什么要开源 kpack?
为什么要开源 kpack 呢?主要原因有两点:
为了将 Build Service 的容器构建功能与声明逻辑作为可消费的组件进行交付,以供社区内的其他卓越产品随意使用。
为了提供一套强大接口,以供希望实现细粒度控制的用户们创建并修改镜像资源。
下面,我们一同了解其中的基本原理。
利用 kpack 构建卓越产品
kpack 的核心在于自动创建并更新能够随处运行的容器镜像,这也是 Pivotal 客户最重视的核心技术之一。但是 kpack 在社区的手中又将迸发出怎样的能量?相信在众多卓越社区成员的支持之下,kpack 将获得现在还无法想象的妙用。
Pivotal 的目标是改变软件构建的方式。因此,像 kpack 这样的技术应该面向所有人开放!目前我们已经看到 kpack 在众多用例中的价值潜力,例如 riff 将利用 kpack 构建函数以处理各类事件;Cloud Foundry 社区计划在其 Cloud Foundry 应用程序运行时当中将 kpack 作为新的应用分段机制。
利用 kpack 获取更多控制选项
Kubernetes 是一种新的标准,并已经成为“云原生基础设施中的核心迁移选项”。不同企业正处于 Kubernetes 旅程中的不同阶段,其中的各个小组也对 Kubernetes 交互以及使用 Kubernetes 工具有着不同的需求。因此,Pivotal Build Service 的目标就是满足用户的一切需求,提供一流的 Kubernetes 使用体验,帮助用户与 CRD 直接交互。
kpack 快速上手
如何配合 kpack 使用 kubectl?首先,需要在集群上安装 kpack。您可以点击此处参考 kpack repo 中的说明文档。此外,如果您能够访问,也可以参考 Build Service 说明文档中的操作步骤。
kpack 能够实现以下简单工作流程:
应用镜像、自动构建、镜像构建发布
Git Push、kpack 变更检测、BUildpack 重构
kpack 的最佳使用方法,是配合安装有 Pivotal Build Service 的 Enterprise PKS 集群。不过由于 kpack 具有 Kubernetes 原生性质,因此也完全能够运行在任何受支持的 Kubernetes 集群之上。
访问kpack repo以获取源代码、说明文档以及更多细节信息,填写此表单访问 Build Serivce 的 alpha 测试版本,一旦获取访问许可,您即可查看PivNet上发布的源代码。
原文链接:
https://content.pivotal.io/blog/introducing-kpack-a-kubernetes-native-container-build-service
评论