在Kubernetes的规范分布中部署JFrog Artifactory

本文由JFrog的Craig Peters和Canonical的Stephan Fabel共同撰写。
一种免费使用的快速部署Kubernetes (k8s)的方法是加速开发团队采用Kubernetes的关键构建块。的Kubernetes的典型分布(CDK)跨各种各样的云基础设施提供纯粹的体验。这使得企业能够快速、安全地采用最新的容器编排技术。
为什么需要Kubernetes注册表?
一旦组织拥有了在k8s(包括k8s集群)上运行应用程序的基本构建块,容器注册表,用于自动部署的工具对于k8s来说,他们很快发现一个简单的容器注册表并不能解决问题。有些团队想写Laravel,有些想写Angular,还有一些想用Spring等等。
随之而来的问题是,你如何处理所有这些应用框架,同时让团队使用Docker打包并让k8s运行?答案是你需要一个Kubernetes注册表它汇集了所有的包类型,并支持所有的语言和框架。
JFrog和Canonical合作提供了JFrog Artifactory作为Kubernetes注册表,用于管理Kubernetes的CDK平台应用程序包。Artifactory管理您的应用程序包、操作系统组件依赖关系、开源库、Docker容器和执掌图表提供对所有依赖项的完全可见性。
今天,我们很高兴地宣布一个附加组件的技术预览Kubernetes的典型分布自动管理JFrog Artifactory作为其Kubernetes注册表.
在CDK中部署Artifactory
范围和限制
在集成的技术预览期间,有一些已知的限制和问题,在我们宣布该附加组件普遍可用之前,我们正在努力解决。技术预览已经在AWS云上的Kubernetes 1.9和自我管理的juju控制器上进行了测试。您可能能够让它在其他环境中工作,但可能会遇到问题。请为我们提供反馈和报告问题的归档问题的魔术/咒语项目并在标题中包含“jfrog”。
在这篇博客文章中,我们将展示如何使用conjure-up在CDK上快速轻松地设置和使用Artifactory。在高可用性部署中,使用Artifactory启动并运行一个完整的k8s集群只需要不到一个小时的时间。
先决条件
安装用魔法召唤在Ubuntu系统中,执行如下命令:
$ snap安装魔术-经典
我们的技术预览目前是用Kubernetes 1.9测试的,所以你需要配置魔术来使用特定版本的Kubernetes快照,通过创建一个通道。yaml文件.你需要一台机器Snapd、Python、Perl和jq。
召唤咒语
要部署Kubernetes,需要调用canonical-kubernetes法术:
- 运行用魔法召唤并指定channels.yaml文件。

- 在附加组件选择步骤中,选择JFrog Artifactory.

- 配置CDK。在我们的例子中,我们已经配置了以下设置:
—设置“AWS”为云提供商。
—设置用户凭据。
—设置可用配额空间的云区域。
—设置一个自管理的ju控制器。
有关更多信息,请参见联想到文档. - 为了配置Artifactory,我们选择了所有的默认值。有关选项的详细列表,请参见自述.注意:对于这个简单的例子,我们没有为Artifactory配置证书,这意味着Docker注册表是不安全的。该附加组件支持配置TLS,因此您可以轻松地使用证书进行配置一个安全的Docker注册表.

步骤中的步骤用魔法召唤向导。Juju通过在后端运行进程继续配置Kubernetes集群。 - 使用实例查看Kubernetes和Artifactory部署的基础设施的juju状态。
护符状态 - 在决赛中部署后步骤完成在向导的步骤中,魔术展示了如何通过查询Kubernetes服务将主机连接到Artifactory。

- 使用实例查找允许连接Artifactory的LoadBalancer主机。
接收SVC -o宽>
请注意,所有pod完成初始化、挂载存储设备并启动和运行Artifactory服务可能需要几分钟的时间。 - 使用实例查询运行服务的pod的状态。
库贝特尔去拿吊舱
一旦所有的豆荚都被设置为准备好了Artifactory已经开始运行。
太棒了!现在您已经验证了您的豆荚已经准备好了。是时候推出Artifactory了。 - 在浏览器中打开LoadBalancer。Artifactory启动并运行,Artifactory Onboarding向导启动。

- 点击旁边激活你的Artifactory实例如果你没有驾照,那就开始Artifactory企业试点用于HA部署。
重要的是:Artifactory UI中的链接指向Artifactory Pro试用版,该试用版不支持HA部署,因此请使用上面的链接。

- 通过设置密码、可能需要的任何代理来完成设置,然后继续创建存储库。在这个例子中,我们选择了Docker、Gems、Helm和npm,这样你就可以看到Kubernetes注册表的运行情况。有关更多信息,请参见配置存储库.
让我们关注Docker注册表。 - 测试Docker注册表,配置Docker for Mac允许任何不安全的注册中心。当您使用证书为Artifactory部署提供TLS终止时,请记住关闭此选项。

- Ping Artifactory主机,获取LoadBalancer的IP地址。

- 在本例中,我们配置了设置指向相关的主机和存储库,因为没有DNS。我加上了码头工人虚拟而且docker-local存储库。

- 要开始使用Docker客户端,请转到Docker给我介绍在Artifactory。

- 测试Artifactory虚拟存储库功能。运行Docker拉出一个图像以验证它是否在docker-local回购.

- 找到nginx的版本软件包视图Docker.

现在让我们配置执掌库。 - 打开给我介绍Helm虚拟存储库。

- 找出用于部署的Helm版本:
领导名单
添加Artifactory作为存储库:Helm repo添加
运行helm客户端在当前配置的helm存储库中搜索“artifactory”图表:赫尔姆搜索工艺品
结尾部分
现在,您已经准备好使用Artifactory来管理您的应用程序包、操作系统组件依赖关系、开源库、Docker容器和Helm图表,并完全可见所有依赖关系。这是你的Kubernetes注册表!
有关Kubernetes Registry如何用于构建软件的复杂示例,请参阅我们的Kubernetes例子.这个示例演示了CI管道的分层方法,可以为Kubernetes应用程序实现安全快速的更改。如果您能提供反馈意见,我们将不胜感激法术项目并在标题中注明“jfrog”。
本周来哥本哈根KubeCon的JFrog展台参观我们吧。我们迫不及待地想知道您使用Kubernetes规范发行版#KubernetesRegistry的所有令人兴奋的方式。
