题图摄于旧金山painted Ladies:维多利亚建筑群
(未经授权,请勿转载本公众号文章)
注:微信公众号不按照时间排序,请关注“亨利笔记”,并加星标以置顶,以免错过更新。
本文内容节选自最新出版的《 Harbor权威指南》 一书第3章,详述 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 repo add harbor https://helm.goharbor.io
可以从 Harbor 的 Helm Chart 项目的官方发布网站 GitHub 上查看 Release,目录为“github.com/goharbor/harbor-helm/releases”,如下图所示。注意:这里不推荐用户从 GitHub 上直接下载 Release,推荐执行命令通过 Helm 下载。
本节详细讲解如何配置 Helm Chart 。以下介绍的各项配置可在安装过程中通过“--set”命令指定,也可通过编辑 values.yaml 文件指定。(在搜狐、CSDN等网站转载亨利笔记的文章均为未经授权的剽窃)
若希望少量修改 Helm Chart 的配置完成安装,则可重点关注以下3项配置。
Harbor Helm-Chart 支持 Ingress、ClusterIP、NodePort 及 LoadBalancer等几种访问暴露(expose)方式。在 Kubernetes 集群中使用 Harbor 的场景中可选择ClusterIP。如果需要在 Kubernetes 集群外提供 Harbor 服务,则可选择使用Ingress、NodePort 或 LoadBalancer。
外部地址是客户端访问 Harbor 的地址,也是 Harbor 的管理页面显示完整的“docker” 和 “helm”命令用到的地址;在 Docker、Helm 客户端交互中暴露完整的Token服务地址。
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。
在完成 Chart 的配置后,使用 Helm 安装 HarborHelm Chart,命令如下,其中my-release 为部署名。
◎ Helm 2:
$ helm install --name my-release harbor/harbor
◎ Helm 3:
$ helm install my-release harbor/harbor
《Harbor权威指南》目前当当网优惠中,点击下图直接购买。