如何将 Helm Chart 推送至 Harbor ?

如何将 Helm Chart 推送至 Harbor ?_第1张图片
Author:rab


前言:我们说 Helm 的私有仓库可以是任何 HTTP Server(如 Nginx、Apache 等),而 Harbor 自带 Helm 私有仓库的功能(但默认是禁用的,需要我们手动启用),如果为了节约服务器成本,可无需额外再部署 HTTP Server,直接使用 Harbor 的 Chart 功能即可。接下来,我们将演示如何把 Helm Chart 推送至 Harbor 私有仓库中,以及如何拉取 Harbor 中的 Chart 资源。

1、下载 helm-push 插件

下载地址:https://github.com/chartmuseum/helm-push/

# 离线安装(本次采用)
wget https://github.com/chartmuseum/helm-push/releases/download/v0.10.4/helm-push_0.10.4_linux_amd64.tar.gz

# 或在线安装
helm plugin install https://github.com/chartmuseum/helm-push

2、安装 helm-push 插件

  • 先查看 Helm 的插件目录

    helm env
    

    如何将 Helm Chart 推送至 Harbor ?_第2张图片

  • 解压下载的 helm-push 插件至 ../plugin/ 目录下

    # 我们可以新建一个helm-push插件目录,用于存放helm-push插件
    mkdir -p /root/.local/share/helm/plugins/helm-push
    
    # 解压
    tar xzf helm-push_0.10.4_linux_amd64.tar.gz -C /root/.local/share/helm/plugins/helm-push
    
  • 查看以下解压出来的文件

    image-20231025111320896

  • 查看 helm-push 插件是否安装

    helm plugin list
    

    image-20231025111822752

3、启用 Harbor 支持 Chart

vim harbor.yml

  • 修改前

    image-20231025112140895

  • 修改后

    image-20231025112222648

  • 停止 Harbor 服务

    docker-compose stop
    
  • 注入配置

    ./prepare 
    
  • 安装 ChartMuseum

    ./install.sh  --with-chartmuseum
    
  • 验证 Harbor 是否启用 Helm Chart

    如下图,该 billiards 项目下有 Helm Chart 字段了,证明我们已经成功启用 Harbor 的 Chart 功能了,但目前还没有任何 Chart,接下来我们将 Push 一个 Chart 至 Harbor。

    如何将 Helm Chart 推送至 Harbor ?_第3张图片

4、添加 Harbor 作为 Helm Chart 仓库

helm repo add harbor_repo --username=admin --password=zhurs@123 http://192.168.56.143/chartrepo/billiards

# 说明
# chartrepo:必选项
# billiards:是我们在Harbor中自定义的项目名

image-20231025114454296

# 验证
helm repo list

如何将 Helm Chart 推送至 Harbor ?_第4张图片

5、推送 Chart

将我们之前测试的 mychart-0.1.0.tgz 推送至我们 Harbor 进行测试一下。

helm cm-push mychart-0.1.0.tgz --username=admin --password=zhurs@123 harbor_repo

# 说明
# harbor_repo:推送时repo名称(即上图中的NAME字段对应的名称harbor_repo),这样Helm才知道我们要推送到那个repo中
# 如果你没有添加Harbor作为Helm Chart仓库,那推送的时候需要指定http地址,如:helm cm-push mychart-0.1.0.tgz --username=admin --password=zhurs@123 http://192.168.56.143/chartrepo/billiards

image-20231025115201880

如何将 Helm Chart 推送至 Harbor ?_第5张图片

6、拉取 Chart

helm repo update

# 上传新的Helm Chart后,需要更新Helm存储库的索引文件,才能正常拉取。
helm pull --username=admin --password=zhurs@123 --version 0.1.0 harbor_repo/mychart

# 拉下来的文件如下图所示
# --version:指定拉取的Chart版本
# harbor_repo/mychart:从harbor_repo中拉取mychart,无需指定是Harbor中哪个项目的chart,只需指定chart名称即可

如何将 Helm Chart 推送至 Harbor ?_第6张图片

7、安装 Chart

helm install test-helm --username=admin --password=zhurs@123 --version 0.1.0 harbor_repo/mychart

安装过程就不再演示了,直接执行后即可部署你的 K8s 集群服务了!

Harbor 的部署可参考我前面的博文《Harbor 私有镜像仓库部署》。

—END

你可能感兴趣的:(云原生,helm,kubernetes)