在Kubernetes集群上部署和管理JFrog Artifactory

JFrog Artifactory是一个artifacts仓库管理平台,它支持所有的主流打包格式、构建工具和持续集成(CI)服务器。它将所有二进制内容保存在一个单一位置并提供一个接口,这使得用户在整个应用程序开发和交付过程中,能更易于上传、查找和使用二进制文件。

在本文中我们将介绍如何使用Rancher在Kubernetes集群上部署和管理JFrog Artifactory。在看完本文后,你将会系统地了解JFrog Artifactory OSS的安装设置,并且能够按照同样的步骤在任何Kubernetes集群中安装Artifactory OSS或者它的商业版本。当然,我们还将向你展示如何在Artifactory中创建通用仓库并且向其中上传工件。

除了文章中所展示的之外,Artifactory还有更多特性,在以后的文章中我们会更详细地介绍它们。

好了,那么我们开始吧!

使用的软件

本文使用了下列的软件工具:

  • Rancher v2.0.8

  • 运行在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容器,在启动容器之前,我们需要一个计算实例来运行它,那么我们用下面的命令启动:

在Kubernetes集群上部署和管理JFrog Artifactory

请你根据自己的部署修改project以及zone参数。

几分钟之后你应该能看到实例已经准备好了。

在Kubernetes集群上部署和管理JFrog Artifactory

记录下来EXTERNAL_IP地址,稍后连接Rancher Server的时候你可能会用到。

计算节点启动并运行之后,我们通过GCE的CLI(命令行接口)SSH到它。

在Kubernetes集群上部署和管理JFrog Artifactory

同样,注意调整project和zone参数,在你用不同的name或者在不同的zone启动节点时它们会变化。

连接之后,运行下面的命令安装一些依赖包并且安装Docker CE。Rancher Server是一个Docker容器,如果想要继续安装的话我们就需要用到Docker了。

在Kubernetes集群上部署和管理JFrog Artifactory

有了这些之后,我们就可以部署Rancher服务器了。在第一次启动容器时,Docker Engine会从Docker Hub中获取容器镜像,在启动容器之前先将其保存在本地。以后容器要启动时,就直接使用本地的镜像,这样速度会更快。

使用下面的命令控制Docker启动Rancher Server容器,并监听主机上的80和443端口

在Kubernetes集群上部署和管理JFrog Artifactory

如果一切正常,在返回提示符之前Docker会打印出下载的状态,接着是新的容器ID。

在Kubernetes集群上部署和管理JFrog Artifactory

恭喜你!你已经成功启动了一个Rancher Server实例。

在浏览器中输入刚刚你记录下来的EXTERNAL_IP地址,你需要接受Rancher默认安装的self-signed证书。这之后,会弹出欢迎界面,设置密码(记住它!)接着继续下一页。

在Kubernetes集群上部署和管理JFrog Artifactory

在这一页面上你需要设置Rancher Server的URL。在生产部署中这可能是一个主机名,比如rancher.yourcompany.com,但是如果你使用的是demo server,可以直接使用上面的EXTERNAL_IP地址。

在Kubernetes集群上部署和管理JFrog Artifactory

点击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):

在Kubernetes集群上部署和管理JFrog Artifactory

输出的service account会代替<SA>。复制整个地址并把它用到下面的命令:

在Kubernetes集群上部署和管理JFrog Artifactory

这样会在当前文件夹下创建一个名为key.json的文件。这就是Service Account私钥,Rancher将用它来创建集群:

在Kubernetes集群上部署和管理JFrog Artifactory

你可以把文件的内容粘贴到文本框中,也可以点击Read from a file,选择key.json文件。Rancher将使用该信息生成一个页面,在页面中配置你的新集群:

在Kubernetes集群上部署和管理JFrog Artifactory

设置你想要的Zone、Machine Type、Node Count以及Root Disk Size。当然你可以参考上图demo中使用的默认值。

点击Create,集群就会部署到GKE上,一切ok后你可以在UI界面上看到它已经是活跃状态的了。

在Kubernetes集群上部署和管理JFrog Artifactory

安装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仓库的位置。

在Kubernetes集群上部署和管理JFrog Artifactory

点击Create,JFrog仓库就会出现在自定义目录的列表中了。

在Kubernetes集群上部署和管理JFrog Artifactory

部署Artifactory

我们接着部署Artifactory。在Global视图中,选择jfrog-artifactory集群下的默认项目:

在Kubernetes集群上部署和管理JFrog Artifactory

进入默认项目后,选择Catalog Apps,点击Launch。Rancher将从Application Catalogs中显示可用于安装的应用程序。这里你可能发现artifactory-ha出现了两次,一次是作为合作伙伴提供的chart出现在Rancher附带的默认应用程序库中,另一次是来自JFrog仓库本身。我们安装Helm仓库是因为我们想安装常规的、非HA的Artifactory,我们就喊它artifactory。所有目录下的应用程序都指明了它们来自哪个库,所有在多个库中都有chart的情况下,你仍然可以选择安装哪个库

在Kubernetes集群上部署和管理JFrog Artifactory

当你选择View Details时,你可以更改有关如何安装应用程序的选项。在默认情况下,此目录项将部署已授权的Artifactory商业版本,为此你需要证书。如果你已经拥有证书,那么可以保留默认选项;但是,我们想安装OSS版本,所以我们将更改chart安装的镜像。

我们在Configuration Options界面进行操作,选择Add Answer,设置好artifactory.image.repository的变量名以及docker.bintray.io/jfrog/artifactory-oss的值。

在Kubernetes集群上部署和管理JFrog Artifactory

现在,当你点击Launch,Rancher就会把Artifactory部署到你的集群上。

在Kubernetes集群上部署和管理JFrog Artifactory

当安装完成后,红色的进度条会变更为绿色。这时如果你点到artifactory上,它会展示Rancher给你创建好的资源。在本例中,它在Kubernetes中创建了三个工作负载,三个服务,一个卷以及一个加密。

选择Workloads,你可以看到它们都在运行:

在Kubernetes集群上部署和管理JFrog Artifactory

解决Pending Ingress

在本文发布时,出现了一个bug导致Ingress一直是Pendding状态。如果你在单击Load Balancing时看到这一点,请你阅读解决方案。

在Kubernetes集群上部署和管理JFrog Artifactory

想要解决pendding Ingress问题,我们需要创建Ingress能发送流量的服务。点击右上角的Import YAML,在打开的窗口中,粘贴下面的信息,然后单击Import。

在Kubernetes集群上部署和管理JFrog Artifactory

访问Artifactory

现在在WordLoads界面,artifactory-artifactory-nginx工作负载下会显示出用于查看443/tcp和80/tcp端口的可点击链接:

在Kubernetes集群上部署和管理JFrog Artifactory

当你选择443/tcp时,它会在浏览器的新标签页中打开Artifactory UI。因为默认情况下它使用了self-signed证书,你的浏览器可能会弹出一个警告,要求在执行之前接受证书。

在Kubernetes集群上部署和管理JFrog Artifactory

让Artifactory工作起来

现在你已经有了一个功能齐全的二进制工件仓库可供差遣。过程不是很复杂不是吗!接下来在开始使用它之前,还需要进行一些配置。

首先,需要设置管理密码。当它询问有关代理服务器的信息时,除非你已经将它部署到需要代理配置的位置上了,否则就选择skip。创建一个通用仓库,选择Finish。

现在,我们来快速过一下一些基本用法。

首先,我们上传之前用于创建Artifactory安装的helm chart。

在左侧菜单中选择Artifacts,可以看到刚刚创建的通用仓库。选择它,然后在右上角选择Deploy,将Helm chart的zipfile(或任何其他文件)上传到仓库中。

在Kubernetes集群上部署和管理JFrog Artifactory

等部署完毕之后,你就能在仓库中的Tree选项下看到它了。

在Kubernetes集群上部署和管理JFrog Artifactory

虽然这只是对Artifactory的一个简单测试,但它已经是完全能使用的了。

你可以将Artifactory用于二进制工件存储和分发,并使用Rancher轻松地管理工作负载、集群以及与部署本身相关的内容。

清 理

如果你已经完成了本文中的demo,那么就可以从Rancher的Global Cluster视图中删除Kubernetes集群。这步操作将会从GKE中把它移除掉。这之后,你就可以直接从GCE中删除Rancher Server的实例了。

关 闭

JFrog Artifactory非常的强大。每天都有大量的组织使用它,掌握快速且安全地将它部署到Kubernetes集群中的能力是非常有用的。

根据他们的文献所述,Artifactory让用户可以“快速发布或快速清除”。同样的,Rancher让你能快速部署,同时控制资源和周围环境的安全性。你可以在世界任何地方构建、部署、拆卸、加密、监控Kubernetes集群以及与之交互,而所有的这些都只来自于一个简单的、方便的、安全的接口。

没什么比这更容易的了!

转载于:https://blog.51cto.com/12462495/2335475

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/281019.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

已知思科ASA设备漏洞仍在其新版本中存在

近日&#xff0c;名为“Shadow Brokers(影子经纪人)”的黑客组织声称成功入侵了跟NSA相关的Equation Group(方程式组织)的计算机系统&#xff0c;并成功窃取到了大量的机密信息以及黑客工具。随后&#xff0c;“Shadow Brokers”黑客组织将60%的泄漏文件在网上进行了公布&#…

Yii Listview

转载于:https://www.cnblogs.com/xiong63/p/8546376.html

.NET 7 的 AOT 到底能不能杠反编译?

一&#xff1a;背景 1.讲故事在B站&#xff0c;公众号上发了一篇 AOT 的文章后&#xff0c;没想到反响还是挺大的&#xff0c;都称赞这个东西能抗反编译&#xff0c;可以让破解难度极大提高&#xff0c;可能有很多朋友对逆向不了解&#xff0c;以为用 ILSpy,Reflector,DnSpy 这…

google hdr+_更好的隐私权控制使Google+死了

google hdrEarlier this year, Google started a project to review third-party developer access to Google accounts through the use of APIs. It found a security breach surrounding Google, and is now shutting the service down, at least for consumers. 今年年初&a…

新0-Day漏洞或将给Linux桌面发行版带来浩劫

Linux 的各个发行版都一直强调安全及其相关元素&#xff0c;比如防火墙、渗透测试、沙盒、无痕上网和隐私等等&#xff0c;但事实上可能并没有想象中的那么安全。安全研究员 Chris Evans 公开了其发现的针对 Linux 桌面发行版的 0day 漏洞&#xff0c;利用特制的音频文件入侵 L…

一份详尽的利用 Kubeadm部署 Kubernetes 1.13.1 集群指北

2019独角兽企业重金招聘Python工程师标准>>> 概 述 Kubernetes集群的搭建方法其实有多种&#xff0c;比如我在之前的文章《利用K8S技术栈打造个人私有云&#xff08;连载之&#xff1a;K8S集群搭建&#xff09;》中使用的就是二进制的安装方法。虽然这种方法有利于我…

.NET性能优化-使用内存+磁盘混合缓存

我们回顾一下上一篇文章中的内容&#xff0c;有一个朋友问我这样一个问题&#xff1a;我的业务依赖一些数据&#xff0c;因为数据库访问慢&#xff0c;我把它放在 Redis 里面&#xff0c;不过还是太慢了&#xff0c;有什么其它的方案吗&#xff1f;其实这个问题比较简单的是吧&…

最小生成树详解

注&#xff1a;本文算法使用链式前向星数据结构实现。学习链接&#xff1a;链式前向星-学习笔记 一、Prim算法 普通prim算法模板&#xff1a; //用前向星录数据的时候记得把head初始化为-1 fill(dist,distLEN,MAX); memset(vis,0,sizeof vis); int ans0; dist[1]0; //如…

dropbox文件_Dropbox即将发布的扩展程序更新将添加更多文件编辑支持,包括Pixlr照片...

dropbox文件Dropbox is perhaps the best-known cloud storage platform for consumers, but it’s hoping to become something more. With an upcoming overhaul to its user tools, Dropbox will add more complex editing tools, in addition to what it already provides …

黑客窃取思科、IBM与甲骨文认证管理系统内的敏感数据

目前一套被思科、F5、IBM以及甲骨文等企业所广泛使用的认证管理系统(即Credential Manager System)正面临着数据泄露风险&#xff0c;其中的敏感数据也许已经被黑客们所获取。 根据Pearson VUE(主营计算机测试方案开发与交付)发布的一项公告&#xff0c;某恶意软件已经藏身于该…

Spring下载地址

下载地址&#xff1a;https://repo.spring.io/libs-release-local/org/springframework/spring/ 进入后可选择下载版本&#xff0c;选择版本后&#xff0c;进入目录结构。其中dist是最终发布版本&#xff0c;包含开发所需lib和源码。docs是开发文档。schema是一些约束文件。 Do…

.NET7发布,一大批优秀.NET6项目没人看了吗...(都是好项目)

恍惚间都已经.NET7.0了&#xff0c;不能再呆在旧版本了&#xff01;这里分享一套Vue3 Axios TS Vite Element Plus .NET 6 WebAPI JWT SqlSugar的通用管理后台&#xff0c;各种最新框架组件&#xff0c;学习必备&#xff01;这里把源码、脚本以及专门录制的视频教程都打…

Python的日志记录-logging模块的使用

一、日志 1.1什么是日志 日志是跟踪软件运行时所发生的事件的一种方法&#xff0c;软件开发者在代码中调用日志函数&#xff0c;表明发生了特定的事件&#xff0c;事件由描述性消息描述&#xff0c;同时还包含事件的重要性&#xff0c;重要性也称为级别或严重性。 1.2何时使用日…

询问HTG:白噪声屏幕保护程序,有效的文件命名以及从密码泄露中恢复

Once a week we share three of the questions we’ve answered from the Ask HTG inbox with the greater readership; this week we’re looking at white noise screen savers, efficient file naming systems, and recovering from a password compromise. 每周一次&#…

专家预测第二波WannaCry勒索病毒攻击即将到来!

WannaCry的传播脚步今晨戛然而止 今天一大早&#xff0c;全网的WannaCry蠕虫病毒攻击突然减弱消退了!所有这一切功劳来自于英国研究人员malwaretech&#xff0c;他通过逆向发现WannaCry代码中有一个特殊域名地址&#xff1a; www.iuqerfsodp9ifjaposdfjhgosurijfaewrwergwea.co…

01.HTML基础命令笔记

目录 HTML结构 body内常用标签 常用 div与span img a标签 超链接标签 其他格式标签 列表 表格 表单 select标签 label标签 textarea多行文本 HTML结构 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"&…

ios numlock_从“提示”框:默认情况下启用NumLock,无广告的iOS应用和立体声供电的派对灯...

ios numlockOnce a week we round up some of the great tips readers have sent into the tip box. This week we’re looking at how to enable the NumLock by default, stripping ads from iOS apps, and turning Christmas lights into audio-responsive party lights. 每…

Windows 7 自动更新失败导致无法进系统解决方案

故障现象&#xff1a;自动更新后&#xff0c;重启电脑&#xff0c;提示&#xff1a;&#xff08;配置Windows update 失败 还原更改 请勿关闭计算机&#xff09;&#xff0c; 而计算机一直停留该界面&#xff0c;如果半个小时以上都无反应。此时&#xff0c;就不要再继续等待了…

PaperWeekly 第28期 | 图像语义分割之特征整合和结构预测

“ 余昌黔 华中科技大学硕士 研究方向为图像语义分割 知乎专栏 https://zhuanlan.zhihu.com/semantic-segmentation 前言 近来阅读了 PASCAL VOC 2012 排行榜上前几的文章&#xff0c;包括 PSPNet 和林国省老师的几篇论文&#xff0c;觉得现在在 semantic segmentation 领域对于…

02.CSS基础笔记及导入

CSS是什么 CSS&#xff08;Cascading Style Sheet&#xff0c;层叠样式表)定义如何显示HTML元素。 当浏览器读到一个样式表&#xff0c;它就会按照这个样式表来对文档进行格式化&#xff08;渲染&#xff09;。 CSS样式 CSS引入HTML 内部样式与外部样式 <!DOCTYPE> …