4.4 KiB
4.4 KiB
本文作者:丁辉
Helm私有仓库部署
开始部署
-
部署
kubectl create -f https://gitee.com/offends/Kubernetes/raw/main/File/Yaml/chartmuseum.yaml
-
配置内部域名
echo $(kubectl get svc -n helm | grep chartmuseum | awk '{print $3}') chartmuseum.local.com >> /etc/hosts
-
检查
curl http://chartmuseum.local.com:8080/api/charts
使用
-
添加仓库
helm repo add localrepo http://chartmuseum.local.com:8080
-
创建 Helm 文件
helm create demo
-
打包
-
打包:不指定版本 , 默认生成 0.1.0 版本
helm package demo/
-
打包: 指定版本 0.1.1
helm package demo/ --version 0.1.1
-
-
查看详情
helm show chart demo
Helm push 插件操作命令
-
添加公共仓库
helm repo add stable http://mirror.azure.cn/kubernetes/charts
也可以换成微软的源,速度快,内容和官方同步的
helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
-
Helm安装 push 插件
helm plugin install https://github.com/chartmuseum/helm-push
-
Cm-push chats包到Chartmuseum
-
添加 cm-push 插件
helm plugin install https://github.com/chartmuseum/helm-push
-
使用 cm-push 上传 chat 包
helm cm-push demo-0.1.0.tgz localrepo
-
使用 cm-push 上传 chat 目录
helm cm-push ./demo localrepo
-
-
查看结果
curl http://chartmuseum.local.com:8080/api/charts |jq
-
更新
helm repo update
-
检查
helm search repo demo
复用harbor仓库
harbor 自带 helm 私有仓库的功能,不需要再部署一个helm 私有仓库,在这里给大家介绍一下 helm 如何上传chart包到 harbor
-
添加私有仓库harbor
添加 repo
helm repo add harbor https://harbor.com/chartrepo/library --username xxx --password xxx
-
使用 cm-push 命令 上传 chat 包
helm cm-push demo-0.1.0.tgz harbor
-
上传 cm-push chat 目录
helm cm-push ./demo harbor
-
push chats 包到 harbor 使用 oci 协议
登录到注册中心
helm registry login -u helmchart harbor.com -p xxxxxx
-
使用 push 命令上传 chat 包
helm push demo-0.1.0.tgz oci://harbor.com/helmchart
-
使用 pull 下载包
helm pull oci://harbor.com/helmchart/mychart --version 0.1.0
-
查看 chat 信息
helm show all oci://harbor.com/helmchart/mychart --version 0.1.0
Chartmuseum和curl的使用
添加Chartmuseum到Helm repo
-
登录
helm repo add chartmuseum http://chartmuseum.local.com:8080 --username admin --password admin
-
上传
curl -u admin:admin --data-binary "@demo-0.1.0.tgz" http://chartmuseum.local.com:8080/api/charts
-
下载
curl -O -u admin:admin http://chartmuseum.local.com:8080/charts/demo-0.1.0.tgz
chartmuseum其他API
-
GET /index.yaml
得到 chartmuseum 的全部 chartscurl http://chartmuseum.local.com:8080/index.yaml -u admin:admin
-
GET /charts/demo-0.1.0.tgz
下载 charts 中的 democurl -O http://chartmuseum.local.com:8080/charts/demo-0.1.0.tgz -u admin:admin
-
POST /api/charts
上传一个新的chart版本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 版本curl -s -X DELETE http://chartmuseum.local.com:8080/api/charts/demo/0.2.0 -u admin:admin | jq
-
GET /api/charts
列出所有的chartscurl -s http://chartmuseum.local.com:8080/api/charts -u admin:admin | jq
-
GET /api/chatts/<name>
列出chart的所有版本curl -s http://chartmuseum.local.com:8080/api/charts/demo -u admin:admin | jq
-
GET /api/charts/<name>/<version>
对一个chart版本的描述curl -s http://chartmuseum.local.com:8080/api/charts/demo/0.2.0 -u admin:admin | jq
-
GET /health
return 200 OKcurl http://chartmuseum.local.com:8080/health