Harbor安装指南

Harbor是一个用于存储和分发容器镜像的开源私有仓库。在Kubernetes(K8S)上安装Harbor,可以方便地管理和部署容器镜像。

本文将介绍如何在Kubernetes上安装和配置Harbor,并提供了相关的代码示例和详细的步骤说明,适用于经验丰富的开发者指导新手完成该过程。

安装流程
下面是安装Harbor的整体流程。

| 步骤 | 描述 |
| --- | --- |
| 1 | 配置Kubernetes集群 |
| 2 | 创建Harbor命名空间 |
| 3 | 添加Harbor Helm Chart存储库 |
| 4 | 安装并配置Harbor |

接下来,我们将逐步解释每个步骤所需要做的事情,并提供相应的代码示例。

步骤1:配置Kubernetes集群
首先,你需要确保已经配置好一个可用的Kubernetes集群,并且拥有集群管理员权限。你可以根据你的喜好使用任何适合你的Kubernetes安装方式,例如使用Minikube(开发和测试环境)或Kubernetes in Docker(生产环境)。

步骤2:创建Harbor命名空间
使用kubectl命令创建一个新的命名空间来放置Harbor的安装组件。在终端运行以下命令:

```bash
kubectl create namespace harbor
```

步骤3:添加Harbor Helm Chart存储库
Helm是Kubernetes的包管理器,我们可以使用Helm来方便地安装和管理Harbor。首先,你需要将Harbor的Helm Chart存储库添加到Helm中。运行以下命令:

```bash
helm repo add harbor https://helm.goharbor.io
helm repo update
```

步骤4:安装并配置Harbor
现在,我们可以使用Helm来安装Harbor。运行以下命令:

```bash
helm install harbor harbor/harbor \
--namespace harbor \
--create-namespace \
--set expose.ingress.hosts.core=my-harbor.domain.com \
--set expose.ingress.hosts.notary=my-notary.domain.com
```

以上命令将会:
- 从Helm Chart中安装Harbor,并创建一个名为harbor的命名空间;
- 将Harbor的核心服务暴露在my-harbor.domain.com域名下;
- 将Notary(用于签名和验证容器镜像的工具)暴露在my-notary.domain.com域名下。

安装完成后,你可以使用kubectl命令来查看Harbor的安装情况:

```bash
kubectl get pods -n harbor
```

这将显示类似以下的输出:

```
NAME READY STATUS RESTARTS AGE
harbor-harbor-adminserver-74dc7ff59d-kpgj8 1/1 Running 0 2m
harbor-harbor-chartmuseum-79767b9758-lqn8d 1/1 Running 0 2m
harbor-harbor-clair-79b774c744-ck7lk 1/1 Running 0 2m
harbor-harbor-core-59c4c74f96-xt9vt 1/1 Running 0 2m
harbor-harbor-database-0 1/1 Running 0 2m
harbor-harbor-jobservice-7546bd5978-9z8qs 1/1 Running 0 2m
harbor-harbor-registry-7b79fb4d84-t2t6s 1/1 Running 0 2m
harbor-harbor-registryctl-ddc8c9b94-46jrf 1/1 Running 0 2m
harbor-harbor-trivy-78d4c964d5-dwmn4 1/1 Running 0 2m
```

至此,你已经成功安装和配置了Harbor。你可以使用你的浏览器打开相应域名,例如my-harbor.domain.com,以访问并管理Harbor。

总结
本文介绍了如何在Kubernetes上安装和配置Harbor私有仓库,包括创建命名空间、添加Helm Chart存储库以及使用Helm安装Harbor等步骤。通过按照这些步骤操作,你可以方便地部署和管理容器镜像。