一、背景
在近几年,Kubernetes 迅速成为了容器编排的事实上的开源规范。与虚拟机不同,Kubernetes 在抽象化基础架构的同时牢靠地大规模编排容器,这能够帮忙开发人员将工作负载与基础架构的复杂性离开。Kubernetes 是 CI/CD 自动化的现实抉择,因为它提供了许多内置性能,这些性能使应用程序部署实现标准化和可重用,进步了开发人员的生产力,并放慢了云原生应用程序的采纳。
Platform9 是成立于 2013 年的云服务提供商,可能提供业界惟一由 SaaS 治理的混合云解决方案,使用户可能疾速采纳云技术并在公有部署或公共云中的任何基础架构上统一地治理 VM、Kubernetes 和无服务器性能。Platform9 提供的 Kubernetes 解决方案也是业界的佼佼者。
在 2019 年巴塞罗那举办的 KubeCon + CloudNativeCon 大会上,Platform9 与 1000 多名与会者进行了互动,有近 500 名与会者参加了 Kubernetes 的相干考察。下图列出了对于最常见的 Kubernetes 利用场景的调查结果:
其中,基于 Kubernetes 的 CI/CD 自动化是最为宽泛的用例,专一于帮忙开发人员更快地构建和交付应用程序。然而,在具备全自动和可反复的 CI/CD 流水线的生产环境中运行 Kubernetes(k8s)以及继续的安全检查会带来新的挑战,包含集成的复杂性,继续的产品更新 / 回滚、自运维、生命周期治理等等。
解决这些挑战并没有设想中的艰难,本文将介绍 Platform9 如何利用 JFrog 的产品在 Kubernetes 上疾速实现 CI/CD 自动化并将其推广到整个组织的办法。
二、应用 Artifactory 和 Helm 的 5 步 Kubernetes CI / CD 流水线
在 Platform9 提供的计划中,JFrog Artifactory 作为微服务的 Docker 注册表(或多个注册表),是构建 CI/CD 流水线不可或缺的一部分。同时,应用 Artifactory 作为 Helm Chart 存储库,进一步使该制品治理仓库可能提供将容器部署到 k8s 集群所需的所有集成资源。
Artifactory 还能够作为近程依赖的代理仓库,例如 npm、Maven、Gradle 和 Go 等,实现平安的 Kubernetes 注册表,使您可能跟踪零碎中端到端的内容、依赖关系,以及与其余 Docker 镜像的关系。
5 步实现 Kubernetes CI/CD 流水线:
· 步骤 1. 应用 Artifactory 中代理的注册表来开发微服务。生成的利用程序包能够是.war 或.jar 文件;
· 步骤 2. 在 Ubuntu 上应用 Tomcat 和 Java- 8 创立 Docker 框架作为根底镜像。将此镜像推送到 Artifactory 中的 Docker 注册表中,JFrog Xray 也会对其进行扫描,以确保安全性和许可证合规性。
· 步骤 3. 通过将.war 或.jar 文件增加到 Docker 框架中,为微服务创立 Docker 镜像,将该镜像推送到 Artifactory 中的 Docker 注册表中,并通过 Xray 对其进行扫描。
· 步骤 4. 为微服务创立 Helm Chart,并将其推送到 Artifactory 中的 Helm 存储库。
· 步骤 5. 应用 Helm Chart 将微服务从平安的 Docker 注册表部署到 Kubernetes 集群。
在上述流水线当中,除了负责制品仓库治理,Artifactory 还能够提供品质的可审核性,因为它捕捉了整个 CI/CD 流程中产生的所有大量有价值的元数据,蕴含:
· 构建和环境信息
· 模块的依赖关系
· CI 服务器,如 Jenkins,提供的相干信息
· 公布模块及其依赖的具体许可证剖析
· 公布历史信息等
应用 Artifactory,能够跟踪负责生成应用程序层(例如 WAR 文件)的 CI 工作,该应用程序层是 Docker 镜像层的一部分。通过比拟两次构建,能够显示构建之间的差别,从而轻松跟踪哪个构建公布到了 Docker 镜像的哪个层,近而持续跟踪到代码的提交。
三、流水线个性解析
3.1 JFrog Artifactory 和 Xray 确保软件交付的自动化
Artifactory 是一个通用的制品仓库治理平台,无论组织中的微服务在哪里运行,它都能够满足所有 CI/CD 的需要。Artifactory 通过提供齐全的 Docker 兼容性,使开发人员可能将容器化的微服务部署到 Kubernetes 集群中。将利用程序包推送到 Artifactory 仓库后,您能够在开发、测试和公布阶段持续验证和降级您的容器,最初将其部署到 Kubernetes 中的生产集群。如之前的剖析,Artifactory 还为所有利用程序包提供了残缺的可审核性和可追溯性。
JFrog Xray 对 Docker 镜像执行深度递归扫描,并辨认所有层和依赖项中的安全漏洞。它还会查看以确保所有软件组件的许可证均合乎组织的策略。这有助于阻止易受攻击且不合规的软件投入生产。而且,Xray 提供的继续扫描能力,能够确保发现新问题或更改策略时的继续安全性。
3.2 Helm Charts 使 CI/CD 工具部署自动化
一旦您的 Kubernetes 基础架构启动并运行,Kubernetes Helm 便使您可能通过轻松装置、更新和删除来疾速牢靠地配置容器应用程序。它为开发人员提供了一种打包应用程序并与 Kubernetes 社区共享的工具。它使软件供应商只需按一下按钮即可提供其容器化的应用程序。通过一个命令或单击几下鼠标,用户就能够为开发测试或生产环境装置 Kubernetes 应用程序。大多数风行的 CI/CD 工具集都能够通过 Helm chart 取得。
Platform9 利用目录为 Helm 图表提供了易于拜访的按钮式部署。您能够应用 App Catalog UI 来抉择和部署您喜爱的 CI/CD 流水线工具(例如,Jenkins、Spinnaker、Artifactory、Xray 等)。您能够搜寻,一键部署或配置它。
四、Platform9 的托管 Kubernetes 服务打消了操作复杂性
如果您要解决的次要业务问题,与进步开发人员的生产力,将软件更快地推向市场,以及在生产环境中运行牢靠的应用程序无关,那么您是否值得花工夫解决运维 Kubernetes 的麻烦和复杂性?您是否领有人员和技能来工作和运维大型 Kubernetes 集群?
运维您本人的大规模 Kubernetes 基础架构令人生畏。谬误抉择的结果是长久的,并且会影响应用程序的可用性、性能和敏捷性。尽管在短期内外部构建解决方案可能会更便宜,但您的设计品质可能较低,或者存在一些缺点。这些缺点在您投入生产后才会意识到,从而最终会破费更多的钱。
尽管装置和治理 Kubernetes 不会推动业务向前倒退,但疾速为客户部署新的应用程序和版本却能够。对于开发人员,Kubernetes 的最终用户,平台可用性是要害。他们不在乎是谁建造它或如何建造它的:他们只是想入手实际它,并使其运行良好。
只管开发人员不关怀集群的实现细节或其运维状态,然而依然须要有人进行运维工作以确保集群是最新、衰弱且平安的。Platform9 治理您的 Kubernetes 环境,为您提供全自动运维,并在裸机、VMware、公共云或边缘节点上实现 99.9%的 SLA。这使您的 DevOps 团队能够腾出工夫专一于重要的事件:通过更快地构建更好的应用程序来响应客户需要。
五、总结
通过上述 Platform9 举荐的解决方案来看,基于 JFrog 的 Artifactory 和 Xray,联合 Helm Chart,可能不便、快捷、清晰地搭建实用于规模化 Kubernetes 集群的 CI/CD 自动化流水线。该计划在保障利用构建和交付的疾速、平安、可反复的同时,还能为所有交付的利用提供残缺的可审核性和可追溯性。
** 欢送观看 JFrog 杰蛙每周二在线课堂,点击报名:
https://www.bagevent.com/even…**