一、背景
在近几年,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...**