• 如何将 Helm Chart 推送至 Harbor ?


    helm-ss
    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
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2、安装 helm-push 插件

    • 先查看 Helm 的插件目录

      helm env
      
      • 1

      image-20231025110634110

    • 解压下载的 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
      
      • 1
      • 2
      • 3
      • 4
      • 5
    • 查看以下解压出来的文件

      image-20231025111320896

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

      helm plugin list
      
      • 1

      image-20231025111822752

    3、启用 Harbor 支持 Chart

    vim harbor.yml

    • 修改前

      image-20231025112140895

    • 修改后

      image-20231025112222648

    • 停止 Harbor 服务

      docker-compose stop
      
      • 1
    • 注入配置

      ./prepare 
      
      • 1
    • 安装 ChartMuseum

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

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

      image-20231025113435078

    4、添加 Harbor 作为 Helm Chart 仓库

    helm repo add harbor_repo --username=admin --password=zhurs@123 http://192.168.56.143/chartrepo/billiards
    
    # 说明
    # chartrepo:必选项
    # billiards:是我们在Harbor中自定义的项目名
    
    • 1
    • 2
    • 3
    • 4
    • 5

    image-20231025114454296

    # 验证
    helm repo list
    
    • 1
    • 2

    image-20231025114630089

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5

    image-20231025115201880

    image-20231025120103123

    6、拉取 Chart

    helm repo update
    
    # 上传新的Helm Chart后,需要更新Helm存储库的索引文件,才能正常拉取。
    
    • 1
    • 2
    • 3
    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名称即可
    
    • 1
    • 2
    • 3
    • 4
    • 5

    image-20231025120807637

    7、安装 Chart

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

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

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

    —END

  • 相关阅读:
    【MySQL】IF、ISNULL、IFNULL、NULLIF 函数用法
    vue最新前端面试题系列(1-5)
    贪心算法(算法竞赛、蓝桥杯)--排队接水问题
    面试题-多线程篇-Java语言创建线程有几种不同的方式
    笔记-Python lambda
    MetaCost与重采样结合的不平衡分类算法——RS-MetaCost
    微服务从代码到k8s部署应有尽有系列(十三、服务监控)
    ES6中的Set集合与Map映射
    【--知识点整理--】
    JavaScript 笔记1 ES6 新特性 | 解构赋值、模板字符串、Symbol数据类型、Promise、模块化
  • 原文地址:https://blog.csdn.net/IT_ZRS/article/details/134031838