JFrog Artifactory:你的Kubernetes注册表

JFrog Artifactory作为你的Kubernetes注册表将软件构件组合到容器化的Kubernetes应用程序中

容器让你在特定硬件甚至虚拟机的抽象级别上简化和管理你的应用程序(尤其是微服务应用程序)。正如我们所看到的,像Kubernetes这样的容器编排系统允许您创建应用程序并并排部署它们,而无需担心各种服务和组件之间的兼容性。本文回顾了在Kubernetes中为容器化应用程序组合各种来源组件的好处和挑战JFrog Artifactory如何作为你的Kubernetes注册表在这个多语种环境中成功应对这些挑战。

为什么容器化应用程序应该使用Kubernetes运行?

容器化应用程序并在Kubernetes上运行的好处是,您使用的产品具有一个充满活力的社区更容易创建可伸缩的微服务应用程序。你的容器化应用程序将有几种类型的组件,这取决于你正在使用的操作系统、语言和框架。当你有一个整个团队的人在不同的组件上工作时,它很快就会变得相当复杂。

容器化应用使用Git, Debs或rpm或Yum, Maven, Docker, Helm

为了得到复杂度的范围,让我们先看一下m构成Kubernetes应用程序的任何类型的工件。这些部分组合在一起创建应用程序,并从多个位置获得资源,要么从源代码构建,要么作为从中央存储库下载的外部依赖项。这些构建块代表了Kubernetes应用程序的端到端供应链。虽然可以为每个应用程序使用单独的包管理解决方案,(例如,一个用于您的Debs存储库,另一个用于您的库码头工人注册表),将所有资料集中在一个中心位置,是有好处的。一个原因是您可以跨技术和跟踪完整的构建版本度量持续集成(CI)和交付期间的质量遍历应用程序中每种类型工件之间的依赖关系。

如果我有多个Kubernetes CI管道会怎样?

在您的组织中,不同的团队可能使用不同版本的依赖项(事实上,这是使用依赖项的一部分容器在运行时),这样它们就可以在发布时保持独立性。Kubernetes集群可以并排运行多个应用程序堆栈,而不会产生冲突,也无需考虑每个应用程序的内部依赖关系。这将维护运行中的集群、扩展应用程序、开发新版本和调试应用程序特定问题分开。现在你有了倍数Kubernetes团队是并行工作的,你到底要如何存储所有这些组件而不增加疯狂的复杂性呢?

有没有一种简单的方法来管理Kubernetes工件?

在许多情况下,企业团队(尤其是那些关注安全的团队)维护自己的Docker基础映像,并始终进行构建从头开始.因此,为了构建完整的应用程序堆栈,您的团队需要引入操作系统组件来获得基本映像。从那里,你将需要依赖于应用程序语言的包。例如,一个节点应用程序将在npm中有依赖关系,而一个Ruby应用程序将有gems。每一个都将基于特定的语言版本依赖关系。每个特定于应用程序的配置都可以被分解成一个基本映像,供应用程序开发团队重用。

一旦您有了应用程序代码,您就会知道了码头工人建造每个应用程序层都可以部署到容器映像中,可以单独部署并运行在Kubernetes集群中,也可以作为微服务应用程序的一部分。从这里开始,您将使用Kubernetes yaml配置文件描述微服务应用程序,该配置文件可以使用执掌图表.这些图表也可以根据不同的目的或时间进行版本控制。

JFrog Artifactory是Kubernetes的注册表

我们看到一个成功的模式是使用Artifactory作为您的“Kubernetes注册表,因为它可以让您在与每个应用程序的每一层相关的同时,深入了解代码到集群的过程。Artifactory在一个系统中支持25种以上不同的技术,具有一个元数据模型、一个升级流程和强大的工件间关系。

这与使用Docker注册表作为Kubernetes应用程序构件的主要存储库形成了鲜明对比。在这种设置中,你失去了在Docker映像之间跟踪依赖关系的能力(要么是因为它们在不同的应用程序、不同的组件中,要么只是随着时间的推移而不同的版本)。一个Docker注册表是必要的,但不足以为你的Kubernetes应用程序收集和管理工件。跟踪内容、依赖关系和与其他Docker映像的关系不能用一个简单的Docker注册表来完成。

在开始你的Kubernetes之旅之前的最后提示!

如果你在跑步Kubernetes应用你应该知道每个应用程序从头到尾都在运行什么。Docker映像是运行时版本打包的一个非常重要的部分,但只是其中的一部分。不要忘记追踪和存储应用的每一层,并了解在开发和发行过程中如何将这些部分连接起来。

阅读更多关于Artifactory和Kubernetes