Kubernetes中怎么部署Harbor

发布时间:2022-01-04 14:24:43 作者:iii
来源:亿速云 阅读:344

Kubernetes中怎么部署Harbor

概述

Harbor 是一个开源的企业级 Docker Registry 管理工具,提供了镜像的存储、签名、扫描、复制等功能。在 Kubernetes 集群中部署 Harbor 可以帮助我们更好地管理容器镜像,提高镜像的安全性和可用性。本文将详细介绍如何在 Kubernetes 集群中部署 Harbor。

前提条件

在开始部署之前,确保你已经具备以下条件:

  1. Kubernetes 集群:已经安装并配置好的 Kubernetes 集群。
  2. Helm:Kubernetes 的包管理工具,用于简化 Harbor 的部署。
  3. 持久化存储:Harbor 需要持久化存储来保存镜像、数据库等数据。
  4. 域名和 TLS 证书:Harbor 需要一个域名和相应的 TLS 证书来提供安全的 HTTPS 访问。

步骤 1: 安装 Helm

Helm 是 Kubernetes 的包管理工具,可以帮助我们快速部署和管理 Kubernetes 应用。如果你还没有安装 Helm,可以按照以下步骤进行安装。

1.1 下载 Helm

curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh

1.2 验证 Helm 安装

helm version

如果安装成功,你应该会看到类似以下的输出:

version.BuildInfo{Version:"v3.7.1", GitCommit:"1d11fcb5d3f3bf00dbe6fe31b8412839a96b3dc4", GitTreeState:"clean", GoVersion:"go1.16.9"}

步骤 2: 添加 Harbor Helm Chart 仓库

Harbor 的 Helm Chart 可以通过 Helm 仓库进行安装。首先,我们需要添加 Harbor 的 Helm 仓库。

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

步骤 3: 配置 Harbor

在部署 Harbor 之前,我们需要创建一个配置文件来定制 Harbor 的部署参数。你可以使用 values.yaml 文件来覆盖默认的配置。

3.1 创建 values.yaml 文件

expose:
  type: ingress
  tls:
    enabled: true
    secretName: "harbor-tls"
  ingress:
    hosts:
      core: harbor.example.com
      notary: notary.example.com
    annotations:
      nginx.ingress.kubernetes.io/proxy-body-size: "0"
      nginx.ingress.kubernetes.io/proxy-read-timeout: "600"
      nginx.ingress.kubernetes.io/proxy-send-timeout: "600"

persistence:
  enabled: true
  resourcePolicy: "keep"
  persistentVolumeClaim:
    registry:
      storageClass: "standard"
      accessMode: ReadWriteOnce
      size: 5Gi
    chartmuseum:
      storageClass: "standard"
      accessMode: ReadWriteOnce
      size: 5Gi
    jobservice:
      storageClass: "standard"
      accessMode: ReadWriteOnce
      size: 1Gi
    database:
      storageClass: "standard"
      accessMode: ReadWriteOnce
      size: 1Gi
    redis:
      storageClass: "standard"
      accessMode: ReadWriteOnce
      size: 1Gi

externalURL: https://harbor.example.com

harborAdminPassword: "Harbor12345"

database:
  password: "dbpassword"

redis:
  password: "redispassword"

chartmuseum:
  enabled: true

clair:
  enabled: true

notary:
  enabled: true

3.2 解释配置文件

步骤 4: 部署 Harbor

使用 Helm 部署 Harbor 非常简单,只需运行以下命令:

helm install harbor harbor/harbor -f values.yaml -n harbor --create-namespace

4.1 解释命令

4.2 验证部署

部署完成后,你可以通过以下命令查看部署状态:

kubectl get pods -n harbor

如果一切顺利,你应该会看到类似以下的输出:

NAME                                    READY   STATUS    RESTARTS   AGE
harbor-harbor-chartmuseum-0             1/1     Running   0          5m
harbor-harbor-clair-0                   1/1     Running   0          5m
harbor-harbor-core-0                    1/1     Running   0          5m
harbor-harbor-database-0                1/1     Running   0          5m
harbor-harbor-jobservice-0              1/1     Running   0          5m
harbor-harbor-notary-server-0           1/1     Running   0          5m
harbor-harbor-notary-signer-0           1/1     Running   0          5m
harbor-harbor-portal-0                  1/1     Running   0          5m
harbor-harbor-redis-0                   1/1     Running   0          5m
harbor-harbor-registry-0                1/1     Running   0          5m

步骤 5: 访问 Harbor

部署完成后,你可以通过配置的域名(例如 https://harbor.example.com)访问 Harbor 的 Web 界面。使用 harborAdminPassword 中配置的密码登录。

5.1 登录 Harbor

打开浏览器,访问 https://harbor.example.com,使用以下凭据登录:

5.2 创建项目

登录后,你可以创建一个新的项目来管理你的 Docker 镜像。点击 “Projects” -> “New Project”,填写项目名称并保存。

5.3 推送镜像

你可以使用 Docker CLI 将镜像推送到 Harbor。首先,登录到 Harbor:

docker login harbor.example.com

然后,标记并推送镜像:

docker tag my-image:latest harbor.example.com/my-project/my-image:latest
docker push harbor.example.com/my-project/my-image:latest

步骤 6: 配置 Ingress

如果你使用的是 Kubernetes Ingress 控制器(如 Nginx Ingress Controller),你需要确保 Ingress 资源已经正确配置。

6.1 查看 Ingress 资源

kubectl get ingress -n harbor

你应该会看到类似以下的输出:

NAME           CLASS    HOSTS                  ADDRESS   PORTS     AGE
harbor-ingress   <none>   harbor.example.com             80, 443   10m

6.2 配置 DNS

确保 harbor.example.com 的 DNS 记录指向你的 Kubernetes 集群的 Ingress 控制器 IP 地址。

步骤 7: 备份和恢复

为了确保数据的安全性,建议定期备份 Harbor 的数据。你可以通过以下步骤进行备份和恢复。

7.1 备份

kubectl exec -n harbor harbor-harbor-database-0 -- pg_dump -U postgres registry > registry.sql

7.2 恢复

kubectl exec -i -n harbor harbor-harbor-database-0 -- psql -U postgres registry < registry.sql

结论

通过以上步骤,你已经成功在 Kubernetes 集群中部署了 Harbor。Harbor 提供了强大的镜像管理功能,可以帮助你更好地管理容器镜像,提高镜像的安全性和可用性。希望本文对你有所帮助,祝你在 Kubernetes 的世界中玩得愉快!

推荐阅读:
  1. Kubernetes Harbor的安装和使用
  2. harbor的安装和部署

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

harbor kubernetes

上一篇:Java如何实现宠物店在线交易平台

下一篇:JS的script标签属性有哪些

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》