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

Canonical和JFrog合作

本文由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。创建通道。yaml文件

召唤咒语

要部署Kubernetes,需要调用canonical-kubernetes法术:

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

    在CDK中配置一个法术
    步骤中的步骤用魔法召唤向导。Juju通过在后端运行进程继续配置Kubernetes集群。

  5. 使用实例查看Kubernetes和Artifactory部署的基础设施的juju状态。
    护符状态
  6. 在决赛中部署后步骤完成在向导的步骤中,魔术展示了如何通过查询Kubernetes服务将主机连接到Artifactory。
    post-deploy步骤
  7. 使用实例查找允许连接Artifactory的LoadBalancer主机。

    接收SVC -o宽>


    请注意,所有pod完成初始化、挂载存储设备并启动和运行Artifactory服务可能需要几分钟的时间。

  8. 使用实例查询运行服务的pod的状态。

    库贝特尔去拿吊舱


    一旦所有的豆荚都被设置为
    准备好了Artifactory已经开始运行。
    查看pod状态
    太棒了!现在您已经验证了您的豆荚已经准备好了。是时候推出Artifactory了。

  9. 在浏览器中打开LoadBalancer。Artifactory启动并运行,Artifactory Onboarding向导启动。JFrog Artifactory Wizard
  10. 点击旁边激活你的Artifactory实例如果你没有驾照,那就开始Artifactory企业试点用于HA部署。
    重要的是:Artifactory UI中的链接指向Artifactory Pro试用版,该试用版不支持HA部署,因此请使用上面的链接。

    激活artifactory

  11. 通过设置密码、可能需要的任何代理来完成设置,然后继续创建存储库。在这个例子中,我们选择了Docker、Gems、Helm和npm,这样你就可以看到Kubernetes注册表的运行情况。有关更多信息,请参见配置存储库
    让我们关注Docker注册表。
  12. 测试Docker注册表,配置Docker for Mac允许任何不安全的注册中心。当您使用证书为Artifactory部署提供TLS终止时,请记住关闭此选项。
    测试Docker注册表
  13. Ping Artifactory主机,获取LoadBalancer的IP地址。
    ping artifactory主机获取IP地址
  14. 在本例中,我们配置了设置指向相关的主机和存储库,因为没有DNS。我加上了码头工人虚拟而且docker-local存储库。
    查看Docker存储库
  15. 要开始使用Docker客户端,请转到Docker给我介绍在Artifactory。
    Docker介绍我
  16. 测试Artifactory虚拟存储库功能。运行Docker拉出一个图像以验证它是否在docker-local回购
    Docker本地回购
  17. 找到nginx的版本软件包视图Docker
    在Artifactory中查看Docker注册表
    现在让我们配置执掌库。
  18. 打开给我介绍Helm虚拟存储库。
    在Artifactory中建立一个头盔仓库
  19. 找出用于部署的Helm版本:

    领导名单


    添加Artifactory作为存储库:

    Helm repo添加


    运行helm客户端在当前配置的helm存储库中搜索“artifactory”图表:

    赫尔姆搜索工艺品

    赫尔姆搜索工艺品

结尾部分

现在,您已经准备好使用Artifactory来管理您的应用程序包、操作系统组件依赖关系、开源库、Docker容器和Helm图表,并完全可见所有依赖关系。这是你的Kubernetes注册表!

有关Kubernetes Registry如何用于构建软件的复杂示例,请参阅我们的Kubernetes例子.这个示例演示了CI管道的分层方法,可以为Kubernetes应用程序实现安全快速的更改。如果您能提供反馈意见,我们将不胜感激法术项目并在标题中注明“jfrog”。

本周来哥本哈根KubeCon的JFrog展台参观我们吧。我们迫不及待地想知道您使用Kubernetes规范发行版#KubernetesRegistry的所有令人兴奋的方式。