banner
NEWS LETTER

Helm私有仓库部署

Scroll down

本文作者:丁辉

Helm私有仓库部署

开始部署

  1. 部署

    1
    kubectl create -f https://gitee.com/offends/Kubernetes/raw/main/File/Yaml/chartmuseum.yaml
  2. 配置内部域名

    1
    echo $(kubectl get svc -n helm | grep chartmuseum | awk '{print $3}') chartmuseum.local.com  >> /etc/hosts
  3. 检查

    1
    curl http://chartmuseum.local.com:8080/api/charts

使用

  1. 添加仓库

    1
    helm repo add localrepo http://chartmuseum.local.com:8080
  2. 创建 Helm 文件

    1
    helm create demo
  3. 打包

    • 打包:不指定版本 , 默认生成 0.1.0 版本

      1
      helm package demo/ 
    • 打包: 指定版本 0.1.1

      1
      helm package demo/ --version 0.1.1
  4. 查看详情

    1
    helm show chart demo

Helm push 插件操作命令

  1. 添加公共仓库

    1
    helm repo add stable http://mirror.azure.cn/kubernetes/charts   

    也可以换成微软的源,速度快,内容和官方同步的

    1
    helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
  2. Helm安装 push 插件

    1
    helm plugin install https://github.com/chartmuseum/helm-push
  3. Cm-push chats包到Chartmuseum

    • 添加 cm-push 插件

      1
      helm plugin install https://github.com/chartmuseum/helm-push
    • 使用 cm-push 上传 chat 包

      1
      helm cm-push demo-0.1.0.tgz localrepo
    • 使用 cm-push 上传 chat 目录

      1
      helm cm-push ./demo localrepo
  4. 查看结果

    1
    curl http://chartmuseum.local.com:8080/api/charts |jq
  5. 更新

    1
    helm repo update
  6. 检查

    1
    helm search repo demo

复用harbor仓库

harbor 自带 helm 私有仓库的功能,不需要再部署一个helm 私有仓库,在这里给大家介绍一下 helm 如何上传chart包到 harbor

  1. 添加私有仓库harbor

    添加 repo

    1
    helm repo add harbor https://harbor.com/chartrepo/library --username xxx --password xxx
  2. 使用 cm-push 命令 上传 chat 包

    1
    helm cm-push demo-0.1.0.tgz harbor
  3. 上传 cm-push chat 目录

    1
    helm cm-push ./demo harbor
  4. push chats 包到 harbor 使用 oci 协议

    登录到注册中心

    1
    helm registry login -u helmchart harbor.com -p xxxxxx
  5. 使用 push 命令上传 chat 包

    1
    helm push demo-0.1.0.tgz oci://harbor.com/helmchart
  6. 使用 pull 下载包

    1
    helm pull oci://harbor.com/helmchart/mychart --version 0.1.0
  7. 查看 chat 信息

    1
    helm show all oci://harbor.com/helmchart/mychart --version 0.1.0

Chartmuseum和curl的使用

添加Chartmuseum到Helm repo

  • 登录

    1
    helm repo add chartmuseum http://chartmuseum.local.com:8080 --username  admin --password admin
  • 上传

    1
    curl -u admin:admin  --data-binary "@demo-0.1.0.tgz" http://chartmuseum.local.com:8080/api/charts
  • 下载

    1
    curl -O -u admin:admin http://chartmuseum.local.com:8080/charts/demo-0.1.0.tgz

chartmuseum其他API

  • GET /index.yaml 得到 chartmuseum 的全部 charts

    1
    curl http://chartmuseum.local.com:8080/index.yaml -u admin:admin
  • GET /charts/demo-0.1.0.tgz 下载 charts 中的 demo

    1
    curl -O http://chartmuseum.local.com:8080/charts/demo-0.1.0.tgz -u admin:admin
  • POST /api/charts 上传一个新的chart版本

    1
    curl -X POST  --data-binary '@demo-0.2.0.tgz'  http://chartmuseum.local.com:8080/api/charts -u admin:admin
  • DELETE /api/charts/<name>/<version> 删除一个 chart 版本

    1
    curl  -s -X DELETE  http://chartmuseum.local.com:8080/api/charts/demo/0.2.0 -u admin:admin | jq
  • GET /api/charts 列出所有的charts

    1
    curl -s  http://chartmuseum.local.com:8080/api/charts -u admin:admin | jq
  • GET /api/chatts/<name> 列出chart的所有版本

    1
    curl -s  http://chartmuseum.local.com:8080/api/charts/demo -u admin:admin | jq
  • GET /api/charts/<name>/<version> 对一个chart版本的描述

    1
    curl -s  http://chartmuseum.local.com:8080/api/charts/demo/0.2.0 -u admin:admin | jq
  • GET /health return 200 OK

    1
    curl  http://chartmuseum.local.com:8080/health

I'm so cute. Please give me money.

其他文章
cover
Kubernetes部署Registry镜像仓库缓存服务
  • 70/01/01
  • 00:00
  • Kubernetes-资源部署
cover
Chatgpt-Pandora
  • 70/01/01
  • 00:00
  • Kubernetes-资源部署
目录导航 置顶
  1. 1. Helm私有仓库部署
    1. 1.1. 开始部署
    2. 1.2. 使用
    3. 1.3. Helm push 插件操作命令
    4. 1.4. 复用harbor仓库
    5. 1.5. Chartmuseum和curl的使用
      1. 1.5.1. 添加Chartmuseum到Helm repo
      2. 1.5.2. chartmuseum其他API
请输入关键词进行搜索