前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >灵活安装 Harbor 的几种方法

灵活安装 Harbor 的几种方法

作者头像
Henry Zhang
发布2020-12-22 11:24:53
2K0
发布2020-12-22 11:24:53
举报
文章被收录于专栏:亨利笔记亨利笔记

题图摄于旧金山painted Ladies:维多利亚建筑群

(未经授权,请勿转载本公众号文章)

注:微信公众号不按照时间排序,请关注“亨利笔记”,并加星标以置顶,以免错过更新。

本文内容节选自最新出版的《 Harbor权威指南》 一书第3章,详述 Harbor 在不同环境中安装部署的多种方法,作者为 Harbor 开源项目维护者王岩,值得 Harbor 用户收藏以备后用。

现招募《Harbor权威指南》英文版翻译人员,有预算,感兴趣的同学请留言联系。

《Harbor权威指南》目前当当网优惠中,点击下图直接购买。

相关文章:

一文读懂 Harbor 的高可用方案

Harbor 提供了多种安装方式,其中包括在线安装、离线安装、源码安装及基于Helm Chart 的安装。

· 在线安装:通过在线安装包安装 Harbor,在安装过程中需要从 Docker Hub 获取预置的 Harbor 官方组件镜像。

· 离线安装:通过离线安装包安装 Harbor,从离线安装包中装载所需要的 Harbor组件镜像。

· 源码安装:通过编译源码到本地安装 Harbor。

· 基于 Helm Chart 的安装:通过 Helm 安装 Harbor Helm Chart 到 Kubernetes 集群。

在单机环境下安装 Harbor

在单机环境下,可以通过在线、离线或者源码安装方式安装 Harbor 。

· 基本配置

获取 Harbor 在线、离线安装包后将其解压,从中可以看到 harbor.yml.tmpl 文件,该文件是 Harbor 的配置文件模版。用户可以把 harbor.yml.tmpl 文件复制并命名为 harbor.yml,将 harbor.yml 文件作为安装 Harbor 的配置文件。

· 离线安装

首先,获取 Harbor 的离线安装包,可从项目的官方发布网站 GitHub 获取,获取目录为 github.com/goharbor/harbor/releases。

在Harbor的发布页面上提供了离线和在线安装文件。

◎ harbor-offline-installer-v2.0.0.tgz:为离线安装包,包含了Harbor预置的所有镜像文件、配置文件等。(本文为公众号:亨利笔记 原创文章)

◎ harbor-offline-installer-v2.0.0.tgz.asc:为离线安装包的签名文件,用户通过它可以验证离线安装包是否被官方签名和验证。

◎ md5sum:包含上述两个文件的md5值,用户通过它可以校验下载文件的正确性。

然后,选择对应的版本,下载并解压离线安装包:

$ curl https://github.com/goharbor/harbor/releases/download/v2.0.0/harbor-offline-installer-v2.0.0.tgz

$ tar -zvxf ./harbor-offline-installer-v2.0.0.tgz

解压离线安装包,可以看到在harbor文件夹下有如下文件。

◎ LICENSE:许可文件。

◎ common.sh:安装脚本的工具脚本。

◎ harbor.v2.0.0.tar.gz:各个功能组件的镜像文件压缩包。

◎ harbor.yml.tmpl:配置文件的模板,在配置好后需要将此文件的后缀名“tmpl”去掉或者复制生成新的文件harbor.yml。

◎ install.sh:安装脚本。

◎ prepare:准备脚本,将harbor.yml配置文件的内容注入各组件的配置文件中。

最后,完成配置后,通过执行安装脚本 install.sh 启动安装。安装脚本的流程大致如下。

(1)环境检查,主要检查本机的 Docker 及 docker-compose 版本。

(2)载入离线镜像文件。

(3)准备配置文件并生成 docker-compose.yml 文件。

(4)通过 docker-compose 启动 Harbor 的各组件容器。

安装脚本支持 Harbor 组件选装,除核心组件外,其他功能组件均可通过参数指定。安装完成后,可通过浏览器登录管理控制台或者 Docker 客户端推送镜像,验证安装是否成功。(本文为公众号:亨利笔记 原创文章)

· 在线安装

不同于离线安装,在线安装需要安装机器有访问 Docker Hub 的能力。因为机器在安装过程中需要通过 Docker 获取 Harbor 在 Docker Hub 中预置好的镜像文件。(在搜狐、CSDN等网站转载亨利笔记的文章均为未经授权的剽窃)

首先,获取 Harbor 在线安装包,可从项目的官方发布网站 GitHub 获取,GitHub下载目录为github.com/goharbor/harbor/releases。

在Harbor的发布页面上提供了在线安装文件。

◎harbor-online-installer-v2.0.0.tgz:为在线安装包,包含预置的安装脚本、配置文件模板和许可文件。

◎harbor-online-installer-v2.0.0.tgz.asc:为在线安装包的签名文件,用户通过它可以验证在线安装包是否被官方签名和验证。

◎md5sum:包含了上述两个文件的md5值,用户通过它可以校验下载文件的正确性。

然后,选择对应的版本,下载并解压在线安装包:(本文为公众号:亨利笔记 原创文章)

$ curl https://github.com/goharbor/harbor/releases/download/v2.0.0/harbor-online-installer-v2.0.0.tgz

$ tar -zvxf ./harbor-online-installer-v2.0.0.tgz

解压在线安装包,可以看到如下文件。

◎ LICENSE:许可文件。

◎ common.sh:安装脚本的工具脚本。

◎ harbor.yml.tmpl:配置文件的模板文件。

◎install.sh:安装脚本。

◎ prepare:准备脚本,将配置文件的内容注入各组件的配置文件中。

参考离线安装执行安装命令,并验证安装成功。

· 源码安装

Harbor 的源码编译安装流程大致如下:

(1)获取源码。

(2)修改源码配置文件。

(3)执行“make”命令。

为什么要编译源码呢?理解 “make” 命令编译并构建 Harbor 的流程有助于开发者基于现有代码进行二次开发和调试。在大多数情况下,用户不需要修改 Harbor 源码,使用在线、离线或者 Helm 方式安装即可。如果有自己特殊的业务逻辑,并且此业务逻辑没有被社区接受和进入某个 Release,或者需要订制自己的管理页面,就需要修改源码。而为了修改生效,需要编译Harbor源码。

通过Helm Chart 安装 Harbor

当用户希望在多节点环境或者生产环境下运行 Harbor 时,可能需要在 Kubernetes 集群上部署 Harbor。为此,Harbor提供了 Helm Chart 来帮助用户在 Kubernetes 上部署 Harbor。(本文为公众号:亨利笔记 原创文章)

· 获取 Helm Chart

在安装前需要执行如下命令添加 Helm Chart 仓库:

$ helm repo add harbor https://helm.goharbor.io

可以从 Harbor 的 Helm Chart 项目的官方发布网站 GitHub 上查看 Release,目录为“github.com/goharbor/harbor-helm/releases”,如下图所示。注意:这里不推荐用户从 GitHub 上直接下载 Release,推荐执行命令通过 Helm 下载。

· 配置 Helm Chart

本节详细讲解如何配置 Helm Chart 。以下介绍的各项配置可在安装过程中通过“--set”命令指定,也可通过编辑 values.yaml 文件指定。(在搜狐、CSDN等网站转载亨利笔记的文章均为未经授权的剽窃)

若希望少量修改 Helm Chart 的配置完成安装,则可重点关注以下3项配置。

1.配置服务的暴露方式

Harbor Helm-Chart 支持 Ingress、ClusterIP、NodePort 及 LoadBalancer等几种访问暴露(expose)方式。在 Kubernetes 集群中使用 Harbor 的场景中可选择ClusterIP。如果需要在 Kubernetes 集群外提供 Harbor 服务,则可选择使用Ingress、NodePort 或 LoadBalancer。

2.配置外部地址

外部地址是客户端访问 Harbor 的地址,也是 Harbor 的管理页面显示完整的“docker” 和 “helm”命令用到的地址;在 Docker、Helm 客户端交互中暴露完整的Token服务地址。

3.配置数据持久化

Harbor Helm Chart 支持以下几种存储方式。

◎ Disable:关闭持久化数据。在使用过程中产生的数据会随着 Pod 的消亡而消之。在生产环境下不建议用户关闭持久化数据。

◎ Persistent Volume Claim:在部署 Kubernetes 集群时需要一个默认的 StorageClass,该 StorageClass 将被用于动态地为没有设定 storage class 的 PersistentVolumeClaims 配置存储。如果需要使用非默认的 StorageClass,则要在相应的组件配置下指定 storageClass。如果需要使用已有的持久卷,则要在相应的组件配置下指定 existingClaim。

◎ External Storage:外部存储仅支持存储镜像和Chart文件。外部存储支持的类型包括azure、gsc、s3、swift及oss。

· 安装Helm Chart

在完成 Chart 的配置后,使用 Helm 安装 HarborHelm Chart,命令如下,其中my-release 为部署名。

◎ Helm 2:

$ helm install --name my-release harbor/harbor

◎ Helm 3:

$ helm install my-release harbor/harbor

《Harbor权威指南》目前当当网优惠中,点击下图直接购买。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-12-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 亨利笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • · 基本配置
  • · 离线安装
  • · 在线安装
  • · 源码安装
  • · 获取 Helm Chart
  • · 配置 Helm Chart
    • 1.配置服务的暴露方式
      • 2.配置外部地址
        • 3.配置数据持久化
        • · 安装Helm Chart
        相关产品与服务
        容器镜像服务
        容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档