大规模的Kubernetes CI/CD管道

本博客最初由Kamesh Pemmaraju在Platform9博客

JFrog和Platform9提供大规模的kubernetes ci/cd管道

Kubernetes在抽象底层基础设施的同时可靠地大规模编排容器。与虚拟机不同,这有助于开发人员将工作负载与基础设施的复杂性分离开来。Kubernetes是CI/CD自动化的理想选择,因为它提供了许多内置功能,使应用程序部署标准化和可重用,提高了开发人员的生产力,并加速了云原生应用程序的采用。

下面的图表显示了根据Platform9的常见Kubernetes用例最近的调查在KubeCon Barcelona:

前3个用例是:1)DevOps CI/CD自动化,2)使遗留应用现代化,以及3)自动化应用操作。这些用例专注于帮助开发人员更快地构建和交付应用程序,按需向上或向下扩展它们,并在生产环境中可靠地运行它们。

但是,运行Kubernetes (美丽)在生产环境中使用全自动和可重复的CI/CD管道和持续的安全检查带来了新的挑战,包括集成复杂性,持续的生产更新/回滚,Day 2操作,生命周期管理以及人才获取/保留。

解决这些挑战比你想象的要容易。以下是如何在Kubernetes上快速实现CI/CD自动化并在整个组织中推广的方法。

管理的Kubernetes服务消除了操作的复杂性

如果您要解决的主要业务问题与提高开发人员的工作效率、更快地向市场交付软件以及在生产环境中运行可靠的应用程序有关,那么值得您花时间处理操作Kubernetes的麻烦和复杂性吗?你有足够的人员和技能来管理和运营大规模的Kubernetes集群吗?

操作自己的大规模Kubernetes基础设施是令人生畏的。做出错误选择的后果是长期的,并可能影响应用程序的可用性、性能和敏捷性。虽然在内部构建解决方案可能在短期内更便宜,但您的设计可能质量较差或存在一旦投入生产就会发现的缺陷。此外,最终会花费你更多。

在安装和管理Kubernetes不能推动业务向前发展,快速部署新的应用程序和版本才能推动业务向前发展。对于开发人员(Kubernetes的最终用户)来说,平台可用性是关键。他们不关心是谁构建了它,或者它是如何实现的:他们只是想要得到它,并让它运行良好。

尽管开发人员不关心集群的实现细节或其操作状态,但仍然需要有人做操作工作,以确保集群是最新的、健康的和安全的。Platform9管理Kubernetes环境为您提供完全自动化的第2天操作,以及在裸机、VMware、公共云或边缘上的99.9% SLA。这将解放您的DevOps团队,使其专注于重要的事情:通过更快地构建更好的应用程序来响应客户需求。

管理的Kubernetes服务消除了操作的复杂性

要想体验完全托管的体验并免费试用Kubernetes的核心功能,请查看platform9沙箱

Helm Charts自动化CI/CD工具部署

一旦你的Kubernetes基础设施启动并运行,Kubernetes舵通过简单的安装、更新和删除,使您能够快速、可靠地供应容器应用程序。它为开发人员提供了一个工具来打包他们的应用程序并与Kubernetes社区共享。它允许软件供应商按一下按钮就可以提供他们的容器化应用程序。通过一条命令或几次鼠标点击,用户可以为开发测试或生产环境安装Kubernetes应用程序。大多数流行的CI/CD工具集都是可用作舵图

Platform9 App Catalog为Helm charts提供了方便的访问和按钮部署。你可以使用App Catalog UI来选择和部署你最喜欢的CI/CD管道工具(例如,Jenkins, Spinnaker, Artifactory, JFrog Xray等),你可以搜索它,一键部署它,或配置它。

K8S头盔在平台9的仓库

人工和x射线安全和自动化软件交付

Artifactory是一个通用的存储库管理器,可以满足所有CI/CD需求,无论微服务在您的组织中运行在何处。提供完全Docker兼容性,它使开发人员能够将容器化的微服务部署到Kubernetes集群.一旦将App包推送到Artifactory存储库,就可以通过开发、测试和发布阶段继续验证和推广容器,最后部署到Kubernetes中的生产集群。Artifactory为您的所有应用程序包提供完整的可审计性和可追溯性。

JFrog x光执行对Docker映像进行深度递归扫描并识别所有层和依赖项中的安全漏洞。它还检查以确保所有许可的软件组件符合组织的策略。这有助于阻止易受攻击和不兼容的软件被放置到生产环境中,并且在发现新问题或策略更改时,连续扫描可以确保持续的安全性。

Kubernetes CI/CD的5步使用Artifactory和Helm

Artifactory可以作为微服务的Docker注册表(或多个注册表),以一种与构建它们的CI/CD过程深度集成的方式。使用您的Helm图表存储库进一步支持的工件这个中央存储库管理器为Platform9提供部署所需的所有本机集成资源2022世界杯阿根廷预选赛赛程容器到k8s集群。

当您还使用Artifactory来代理远程存储库时,例如npmMaven,Gradle,工艺品作为您的安全Kubernetes注册表,使您能够在端到端系统中跟踪内容、依赖关系以及与其他Docker映像的关系。

步骤1。使用Artifactory中代理的注册中心的依赖项来开发微服务。生成的App包可以是.war或.jar文件。

步骤2。在Ubuntu上使用Tomcat和Java-8创建Docker框架作为基本镜像。将此映像推送到Artifactory中的Docker注册表,在那里它也会被x射线扫描以确保安全性和许可证合规性。

步骤3。通过将.war/.jar文件添加到Docker框架中,为微服务创建Docker镜像,并将镜像推送到Artifactory中的Docker注册表中,在那里它被x射线扫描。

步骤4。为微服务创建一个Helm图表,并将其推送到Artifactory中的Helm存储库。

第5步。使用Helm Chart将微服务从安全Docker注册表部署到Kubernetes集群。

Managed Prometheus监控您的应用程序

Platform9管理的普罗米修斯为开发和运维团队提供Prometheus堆栈和警报管理器作为多租户服务的轻松部署和配置。该服务是ha就绪的,所有SLA都是自动处理的,不需要管理员干预。开发人员拥有100%的自助服务选项,可以部署任意数量的Prometheus实例,并配置监视规则和容量使用情况。目前,该服务处于测试阶段,很快就会正式推出。请联系我们了解更多详情。

Managed Prometheus监控您的应用程序