JFrog Artifactory是一个artifacts仓库管理平台,它支持全部的主流打包格式、构建工具和持续集成(CI)服务器。它将全部二进制内容保存在一个单一位置并提供一个接口,这使得用户在整个应用程序开发和交付过程当中,能更易于上传、查找和使用二进制文件。nginx
在本文中咱们将介绍如何使用Rancher在Kubernetes集群上部署和管理JFrog Artifactory。在看完本文后,你将会系统地了解JFrog Artifactory OSS的安装设置,而且可以按照一样的步骤在任何Kubernetes集群中安装Artifactory OSS或者它的商业版本。固然,咱们还将向你展现如何在Artifactory中建立通用仓库而且向其中上传工件。docker
除了文章中所展现的以外,Artifactory还有更多特性,在之后的文章中咱们会更详细地介绍它们。json
好了,那么咱们开始吧!浏览器
使用的软件安全
本文使用了下列的软件工具:服务器
Rancher v2.0.8tcp
运行在Google Kubernetes Engine version 1.10.7-gke.2上的Kubernetes集群工具
Artifactory helm chart version 7.4.2测试
Artifactory OSS version 6.3.2阿里云
若是之后本文更新了,请使用到时候的最新版本。
和Kubernetes中的其余工具同样,咱们有多种方法来安装Artifactory。这里咱们将使用Helm chart,Helm提供了一种给应用程序安装命令打包及分享给他人的方式。你能够把它想象成服务于Kubernetes的包管理者。在Rancher Catalog(应用服务目录)中,Rancher集成了Helm,在Catalog中你只须要点击几下就能够部署任何Helm支持的应用程序。除此以外Rancher还有其余特色,包括:
一个简单直观的Web界面
统一纳管全部云上、全部发行版、全部Kubernetes集群
一个单一视图展现全部托管的集群
开箱即用的集群监控
工做负载、基于角色的访问控制(RBAC)、策略和项目管理
全部Kubernetes的功能都不须要在本地安装任何软件
安装Rancher
注意:若是你已经有了Rancher v2 Server和Kubernetes集群,直接能够跳过这部分,直接进入安装JFrog Artifactory的教程部分。
Rancher很是强大,它可以在任何地方管理Kubernetes集群,所以咱们将在GCE实例上以独立模式启动Rancher Server,使用它在GKE中部署Kubernetes集群。
在独立模式下启动Rancher Server很是容易——由于它是Docker容器,在启动容器以前,咱们须要一个计算实例来运行它,那么咱们用下面的命令启动:
请你根据本身的部署修改project以及zone参数。
几分钟以后你应该能看到实例已经准备好了。
记录下来EXTERNAL_IP地址,稍后链接Rancher Server的时候你可能会用到。
计算节点启动并运行以后,咱们经过GCE的CLI(命令行接口)SSH到它。
一样,注意调整project和zone参数,在你用不一样的name或者在不一样的zone启动节点时它们会变化。
链接以后,运行下面的命令安装一些依赖包而且安装Docker CE。Rancher Server是一个Docker容器,若是想要继续安装的话咱们就须要用到Docker了。
有了这些以后,咱们就能够部署Rancher服务器了。在第一次启动容器时,Docker Engine会从Docker Hub中获取容器镜像,在启动容器以前先将其保存在本地。之后容器要启动时,就直接使用本地的镜像,这样速度会更快。
使用下面的命令控制Docker启动Rancher Server容器,并监听主机上的80和443端口
若是一切正常,在返回提示符以前Docker会打印出下载的状态,接着是新的容器ID。
恭喜你!你已经成功启动了一个Rancher Server实例。
在浏览器中输入刚刚你记录下来的EXTERNAL_IP地址,你须要接受Rancher默认安装的self-signed证书。这以后,会弹出欢迎界面,设置密码(记住它!)接着继续下一页。
在这一页面上你须要设置Rancher Server的URL。在生产部署中这多是一个主机名,好比rancher.yourcompany.com,可是若是你使用的是demo server,能够直接使用上面的EXTERNAL_IP地址。
点击Save URL以后,会进入到Clusters页面,从这里开始咱们就能够开始部署本身的Kubernetes集群了。
使用Rancher来部署一个GKE集群
Rancher能够部署、管理来自任何地方的Kubernetes集群。这些集群能够来自Google、Amazon、Azure、阿里云、华为云、腾讯云等等,能够在云节点上、数据中内心,甚至是运行在你笔记本上的VM中。这是Rancher最出色的一点。此次咱们会使用到GKE。在点击Add Cluster以后,选择Google Container Engine。
针对本demo,将name设置成jfrog-artifactory。
要建立集群,Rancher须要访问Google Cloud Platform的权限。这些权限能够经过Service Account的私钥JSON文件得到。如何产生它呢,首先找到service account的name(根据你的状况修改project的name):
输出的service account会代替<SA>。复制整个地址并把它用到下面的命令:
这样会在当前文件夹下建立一个名为key.json的文件。这就是Service Account私钥,Rancher将用它来建立集群:
你能够把文件的内容粘贴到文本框中,也能够点击Read from a file,选择key.json文件。Rancher将使用该信息生成一个页面,在页面中配置你的新集群:
设置你想要的Zone、Machine Type、Node Count以及Root Disk Size。固然你能够参考上图demo中使用的默认值。
点击Create,集群就会部署到GKE上,一切ok后你能够在UI界面上看到它已是活跃状态的了。
安装JFrog Artifactory
接下来咱们将经过JFrog的Helm chart仓库来安装Artifactory。Helm charts,就像OS包管理系统同样,在Kubernetes环境中提供给你稳定的部署容器应用程序的方式,而且让你能够更新或者回滚应用程序。chart保证你给容器安装了特定的版本或者标记,在应用程度有多个组件的状况下,Helm chart可以确保你的所有组件都安装了正确的版本。
安装JFrog Helm仓库
Rancher在其应用程序目录中附带了一个Helm charts库,不过为了知足Rancher用户对灵活性的要求,你还能够安装任何第三方的Helm仓库来部署这些应用程序到集群中。咱们今天将使用JFrog仓库。
在Rancher的Global Cluster视图中,单击Catalogs,接着点击Add Catalog,在弹出的窗口中,输入一个名称,好比jfrog-artifactory,而后输入官方JFrog仓库的位置。
点击Create,JFrog仓库就会出如今自定义目录的列表中了。
部署Artifactory
咱们接着部署Artifactory。在Global视图中,选择jfrog-artifactory集群下的默认项目:
进入默认项目后,选择Catalog Apps,点击Launch。Rancher将从Application Catalogs中显示可用于安装的应用程序。这里你可能发现artifactory-ha出现了两次,一次是做为合做伙伴提供的chart出如今Rancher附带的默认应用程序库中,另外一次是来自JFrog仓库自己。咱们安装Helm仓库是由于咱们想安装常规的、非HA的Artifactory,咱们就喊它artifactory。全部目录下的应用程序都指明了它们来自哪一个库,全部在多个库中都有chart的状况下,你仍然能够选择安装哪一个库
当你选择View Details时,你能够更改有关如何安装应用程序的选项。在默认状况下,此目录项将部署已受权的Artifactory商业版本,为此你须要证书。若是你已经拥有证书,那么能够保留默认选项;可是,咱们想安装OSS版本,因此咱们将更改chart安装的镜像。
咱们在Configuration Options界面进行操做,选择Add Answer,设置好artifactory.image.repository的变量名以及docker.bintray.io/jfrog/artifactory-oss的值。
如今,当你点击Launch,Rancher就会把Artifactory部署到你的集群上。
当安装完成后,红色的进度条会变动为绿色。这时若是你点到artifactory上,它会展现Rancher给你建立好的资源。在本例中,它在Kubernetes中建立了三个工做负载,三个服务,一个卷以及一个加密。
选择Workloads,你能够看到它们都在运行:
解决Pending Ingress
在本文发布时,出现了一个bug致使Ingress一直是Pendding状态。若是你在单击Load Balancing时看到这一点,请你阅读解决方案。
想要解决pendding Ingress问题,咱们须要建立Ingress能发送流量的服务。点击右上角的Import YAML,在打开的窗口中,粘贴下面的信息,而后单击Import。
访问Artifactory
如今在WordLoads界面,artifactory-artifactory-nginx工做负载下会显示出用于查看443/tcp和80/tcp端口的可点击连接:
当你选择443/tcp时,它会在浏览器的新标签页中打开Artifactory UI。由于默认状况下它使用了self-signed证书,你的浏览器可能会弹出一个警告,要求在执行以前接受证书。
让Artifactory工做起来
如今你已经有了一个功能齐全的二进制工件仓库可供差遣。过程不是很复杂不是吗!接下来在开始使用它以前,还须要进行一些配置。
首先,须要设置管理密码。当它询问有关代理服务器的信息时,除非你已经将它部署到须要代理配置的位置上了,不然就选择skip。建立一个通用仓库,选择Finish。
如今,咱们来快速过一下一些基本用法。
首先,咱们上传以前用于建立Artifactory安装的helm chart。
在左侧菜单中选择Artifacts,能够看到刚刚建立的通用仓库。选择它,而后在右上角选择Deploy,将Helm chart的zipfile(或任何其余文件)上传到仓库中。
等部署完毕以后,你就能在仓库中的Tree选项下看到它了。
虽然这只是对Artifactory的一个简单测试,但它已是彻底能使用的了。
你能够将Artifactory用于二进制工件存储和分发,并使用Rancher轻松地管理工做负载、集群以及与部署自己相关的内容。
清 理
若是你已经完成了本文中的demo,那么就能够从Rancher的Global Cluster视图中删除Kubernetes集群。这步操做将会从GKE中把它移除掉。这以后,你就能够直接从GCE中删除Rancher Server的实例了。
关 闭
JFrog Artifactory很是的强大。天天都有大量的组织使用它,掌握快速且安全地将它部署到Kubernetes集群中的能力是很是有用的。
根据他们的文献所述,Artifactory让用户能够“快速发布或快速清除”。一样的,Rancher让你能快速部署,同时控制资源和周围环境的安全性。你能够在世界任何地方构建、部署、拆卸、加密、监控Kubernetes集群以及与之交互,而全部的这些都只来自于一个简单的、方便的、安全的接口。
没什么比这更容易的了!