如何 0 成本启动全员 AI 技能提升?戳> 了解详情
写点什么

把 JFrog Artifactory 作为 Docker 镜像仓库

  • 2020-04-23
  • 本文字数:3232 字

    阅读完需:约 11 分钟

把JFrog Artifactory作为Docker镜像仓库

本文是使用Rancher部署JFrog Artifactory的续集。本文中我们将演示如何把 JFrog Artifctory 作为你 Docker 镜像的私有仓库。


注意: 使用 JFrog Artifactory 的功能前需要获得证书, 不过你可以先选择试用 30 天 ,然后继续按照下文的流程操作。


##为部署工作准备 GCP


如果你想在本地网络以外的地方使用 Artifactory,首先要有一个公有 IP 地址。在这一系列文章的上篇中,我们将集群部署到谷歌云,本文中我们将继续使用 GCP 资源。当然,你要使用其他公有云都是一样的。


你可以通过谷歌云 Shell 或者 gcloud 命令在本地环境中运行下面的命令,申请公共 IP:


gcloud compute addresses create artifactory-demo --global
复制代码


输入名称用于取回 IP 地址(此次教程中我们取的名字是 artifactory-demo)


gcloud compute addresses describe artifactory-demo --global
复制代码


在 output 中查找 address 标签


address: 35.190.61.62
复制代码


为了给我们的部署服务获得满足需求的域名,我们将使用 Basecamp 的 xip.io 服务,在本教程中它的地址是 35.190.61.62.xip.io。

部署 Artifactory

你可以按照上一篇文章中的步骤来部署 Rancher 和 Artifactory,但是当你进入到应用程序部署页面中的配置部分时,还需要添加及修改下面的变量:


ingress.enabled=trueingress.hosts[0]=35.190.61.62.xip.ioartifactory.service.type=NodePortnginx.enabled=falseingress.annotations."kubernetes\.io/ingress\.global-static-ip-name"=artifactory-demo
复制代码


(可以复制/粘贴这块的文本到输入框里,Rancher 会自动转换)


一切完成后,应该会看到下面的样子:



点击 Launch 开始部署资源。

变量的概念解释

新 Artifactory 实例启动起来了,现在来看看刚刚我们都配置了什么。


ingress.enable=true


该变量允许创建一个 ingress 资源,它将作为 Artifactory 的代理,在我们的例子中,Ingresss 是带有 GCP 的负载均衡器。


ingress.hosts[0]=35.190.61.62.xip.io


这设置了 Artifactory 的主机名。xip.io 的一个神奇之处在于,我们可以创建任何子域并将其解析成 IP 地址,因此当我们使用 docker-demo.35.190.61.62.xip.io 时,在后面它都会被解析成 35.190.61.62。


artifactory.service.type=NodePort


在 Kubernetes 节点上的随机端口公开 Artifactory 的服务。Ingress 资源将向该端口发送流量。


nginx.enabled=false


我们是通过 Service 资源,利用 Ingress 和 Artifactory 进行通信的,因此我们希望禁止掉 nginx 代理,因为 Artifactory 在某些情况下会启动它。


ingress.annotations…


这就好比是将 Kubernetes 绑定到静态公共 IP 地址的粘合剂。我们将它设置成你保留的地址的名称,便于 Ingress 查找和使用正确的 IP。我们必须避免使用长长的内容,因为那是标注(annotations)的 name。如果不是这样的话,Kubernetes 可能会误解我们想要做什么。

检查部署

当部署完成后,查看 Workloads 选项卡。这里你会看到两个工作负载,一个是应用程序(artifactory-artifactory),另一个是 artifactory 使用的 PostgreSQL 数据库(artifactory-postgresql)



下一步查看 Load Balancing 选项卡,你会看到 Ingress 对象已经有了我们提供的主机名。



如果选择 View/Edit YAML 并滚动到下面,你可以看到指向 GCP 中地址名的标注(图片中的第 10 行)



在 Ingress 定义的下面你还可以看到 spec.rules.host 中的主机名匹配到了 status.loadBalancer.ingress.ip 的 IP 地址。

配置 Artifactory

关闭 View/Edit YAML 窗口,会返回 Load Balancing 选项卡,这里你可以看到一个带 xip.io 地址的链接。点开它打开 Artifactory,或者在浏览器中输入主机名。


单击 wizard,首先添加证书密钥,接着设置管理员密码。点击其余部分一直到 wizard 完成。


在左侧的菜单中,选择 Admin ,然后在 Repositories 下选择 Local



在这你可以看到经设置 wizard 后创建的默认仓库。在右上角选择+New 创建一个新的仓库,用 Docker 作为 package 类型,输入仓库的名称。在本例中,我们选择了 docker-demo,其余内容都使用的是默认值,然后选择 Save & Finish 来创建新的仓库。



这样一来,你选择的名称(即我们这里的 docker-demo)就成为了 xip.io 域名的子域。在我们此次的安装中,我们使用的是 docker-demo.35.190.61.62.xip.io。当然你配置的会和我不同,不过格式是相同的。

对镜像仓库进行测试

拥有了私有的 Docker 镜像仓库后,如果不使用它,那还有什么意义?


对生产部署,你将通过 SSL 证书来保护仓库的安全,这需要真实域名中的一个真实主机名。在本教程中,你可以直接使用新创建的仓库,不过要告诉 Docker 这是一个不安全的仓库。


按照文档创建或编辑 daemon.json:https://docs.docker.com/registry/insecure/。然后按照下面我的例子这样添加你的主机:


{ "insecure-registries": ["docker-demo.35.190.61.62.xip.io:80"]}
复制代码


如果你使用的是 Windows 或者 Mac 的 Docker,在应用的偏好中进行设置:



重启 Docker 应用更改的内容,在启动之后,你就可以使用仓库:


docker login docker-demo.35.190.61.62.xip.ioUsername: adminPassword:Login Succeeded
复制代码


继续我们的测试,pull 一个公共的容器镜像,re-tag 它,接着把它 push 到新的私有仓库中。

Pull 一个公共的容器镜像

Pull a Public Container Image$ docker pull nginxUsing default tag: latestlatest: Pulling from library/nginxf17d81b4b692: Pull completed5c237920c39: Pull completea381f92f36de: Pull completeDigest: sha256:b73f527d86e3461fd652f62cf47e7b375196063bbbd503e853af5be16597cb2eStatus: Downloaded newer image for nginx:latest
复制代码

Re-tag 镜像

你可以在系统中看到当前的镜像 id 和信息了:


$ docker imagesREPOSITORY          TAG                 IMAGE ID            CREATED             SIZEnginx               latest              dbfc48660aeb        2 days ago          109MB
复制代码


Re-tag 它,这样 Docker 就知道要把它 push 到你的私有仓库了:


$ docker tag nginx docker-demo.35.190.61.62.xip.io:80/nginx:latest
复制代码

Push 镜像到私有仓库

当镜像有了 re-tag,使用 docker push 传到私有仓库:


$ docker push docker-demo.35.190.61.62.xip.io:80/nginx:latestThe push refers to repository [docker-demo.35.190.61.62.xip.io:80/nginx]86df2a1b653b: Pushedbc5b41ec0cfa: Pushed237472299760: Pushedlatest: digest: sha256:d98b66402922eccdbee49ef093edb2d2c5001637bd291ae0a8cd21bb4c36bebe size: 948
复制代码

在 Artifactory 中验证 Push

返回到 Artifactory UI,在菜单中选择 Artifacts:



这里就可以看到 nginx 镜像以及它的信息了。


下一步可以做什么

如果你有 Artifactory 的证书并且希望运行私有仓库,只需使用你自己的域名以及 ingress 上的 SSL 证书重复上面的教程即可。完成这些附加项之后,你就可以在任何 Docker 或者 Kubernetes 安装中使用私有仓库,而无需告诉主机它可能会出现和不安全仓库的通信。

清理

要想清理掉文中出现的资源,先从 Rancher 中删除 Kubernetes 集群,并且从 GCP 中删除 Rancher 服务器:


gcloud compute --project=rancher-20 instances delete \ rancher-instance --zone=europe-west2-c
复制代码


你还需要删除公共 IP 地址的分配:


gcloud compute addresses delete artifactory-demo --global
复制代码

结语

JFrog Artifactory 提供了用于开发生命周期核心部分的服务,你几乎可以存储和检索到开发团队产生的任何类型的工件,并把这些工件存在一个集中的、受管理的地方,这样对于任何 IP 基础设施,Artifactory 都是它重要的部分。


Rancher 可以轻松地将 Artifactory 部署到 Kubernetes 安装中。短短几分钟内,我们就创建并运行了 Artifactory,这安装所花费的时间甚至可能比实际上配置 Artifactory 本身所需的时间还短!


Rancher 的出现让 Kubernetes 更容易上手,Artifactory 更容易管理 binary 资源,把这两者结合起来,就能把你从繁琐的工序中解放出来,专注于你工作的中心,这种自由才是最重要的!


2020-04-23 17:214121

评论

发布
暂无评论
发现更多内容

最佳实践:解读GaussDB(DWS) 统计信息自动收集方案

华为云开发者联盟

大数据 GaussDB(DWS) 企业号 8 月 PK 榜 2024企业号8月pk 实时查询

云手机:海外社媒运营必备工具

Ogcloud

云手机 海外云手机 云手机海外版 云手机群控 海外社媒运营

安全性和合规性:保障企业数据的安全

可观测技术

数据安全 数据合规

继“蓝屏”事件之后,微软再次出现全球性宕机

我再BUG界嘎嘎乱杀

黑客 网络安全 安全 DDoS 网安

在国内怎么运营TikTok?试试云手机!

Ogcloud

云手机 海外云手机 tiktok云手机 云手机海外版 海外云手机推荐

解锁亚马逊商品数据:API获取商品列表信息

tbapi

亚马逊API 亚马逊商品数据采集 亚马逊商品列表接口

将数据库系统实践转向 AI:使用生成式 AI 创建高效的开发和维护实践

哦豁完蛋了

AI Codec

官宣|Apache Flink 1.20 发布公告

Apache Flink

flink 实时计算 官宣

企业业务前端监控实践

京东科技开发者

言犀智能体平台上线了!赶紧来试试!连接大模型与企业应用的“最后一公里”

京东科技开发者

观测云:多云架构下的监控革新与效能提升

可观测技术

监控 多云

润开鸿“龙芯+OpenHarmony”开发平台DAYU431先锋派新品发布

坚果

OpenHarmony 润开鸿

腾讯云大数据 TBDS 参编信通院《数据库发展研究报告》,引领数据湖仓创新

腾讯云大数据

TBDS

ai做ppt的工具哪个好?盘点8个好用的AIPPT生成软件!

彭宏豪95

效率工具 职场 PPT 办公软件 AI生成PPT

一文全面了解HPC高性能计算平台是什么、怎么选型?高性能计算平台CHPC 都能做什么?

XxinQi

Supersonic 发行逻辑:从原型到爆款,健康增长循环助力开发者走向成功

极客天地

高并发场景下的库存管理,理论与实战能否兼得?

京东科技开发者

观测云:零售业数据监控与分析的革新者

可观测技术

监控 零售

最新进展!Intel 18A产品,成功点亮!

E科讯

2024 年 7 月区块链游戏研报:市场波动与数据分化的挑战与机遇

Footprint Analytics

链游

构建数据中台,引领零售业数字化转型的最佳实践

数造万象

数据中台 零售 数字化 数据智能 实践案例

Prometheus Exporter 在观测云中的应用与优势

可观测技术

#Prometheus

Grafana 与观测云:无缝集成的监控可视化体验

可观测技术

数据可视化

从困境到突破,EasyMR 集群迁移助力大数据底座信创国产化

袋鼠云数栈

集群架构 大数据存储 大数据计算与存储 大数据计算引擎 集群迁移

NFTScan 正式上线 Gravity NFTScan 浏览器和 NFT API 数据服务

NFT Research

NFT NFTScan

免费一站式搭建企业云上数据库与BI 数据可视化分析平台

XxinQi

把JFrog Artifactory作为Docker镜像仓库_文化 & 方法_Rancher_InfoQ精选文章