helm3 ChartMuseum

1,467 阅读3分钟

这是我参与8月更文挑战的第8天,活动详情查看:8月更文挑战

闲言

ChartMuseum 官网介绍 是用Go编写的开源的 helm chart 仓库,也就是传说中的私服啦,可以部署在本地,并且支持众多存储后端,包括阿里,腾讯的对象存储,以及minio和etc,非常强大

image.png

ChartMuseum

在安装ChartMuseum 之前,需要helm-push插件的 支持,该插件用于上传chart 包到ChartMuseum中,且插件和私服都是helm官方出品,完全一条龙服务了

搭建这样的私服,一是安全性,二是便捷性,三是自动化,像maven私服,docker私服一样,起到将所有环节串联起来的作用

helm-push

安装helm-push插件非常简单,一条命令既可

helm plugin install https://github.com/chartmuseum/helm-push.git

等待完成既可,如果服务器访问github,比较慢或者完全访问不了,建议使用Github520这个工具,刷一下hosts然后 写到服务器的hosts文件中

21.png

ChartMuseum安装

ChartMuseum的安装方式有多种,,有做为进程,直接在机器上启动的,也可以使用docker一键运行的,也可以使用helm安装的,总之都很方便,喜欢哪种用哪种既可

docker安装方式

这里存储为本地

docker run --rm -it \
  -p 8080:8080 \
  -e DEBUG=1 \
  -e STORAGE=local \
  -e STORAGE_LOCAL_ROOTDIR=/charts \
  -v $(pwd)/charts:/charts \
  ghcr.io/helm/chartmuseum:v0.13.1

例子为s3存储,oss等稍改一下既可

docker run --rm -it \
  -p 8080:8080 \
  -e DEBUG=1 \
  -e STORAGE="amazon" \
  -e STORAGE_AMAZON_BUCKET="my-s3-bucket" \
  -e STORAGE_AMAZON_PREFIX="" \
  -e STORAGE_AMAZON_REGION="us-east-1" \
  -v ~/.aws:/home/chartmuseum/.aws:ro \
  ghcr.io/helm/chartmuseum:v0.13.1

helm安装方式

helm方式还是老套路了,加一下仓库地址,install安装完事

helm repo add chartmuseum https://chartmuseum.github.io/charts
helm install chartmuseum/chartmuseum

shell安装方式

一键安装,或者自行下已打包好的 可执行包也可以,

curl https://raw.githubusercontent.com/helm/chartmuseum/main/scripts/get-chartmuseum | bash
#执行命令查看版本
chartmuseum --version

创建私服

我们最终以docker方式安装好chartmuseum之后,使用helm增加一个repo,然后上传一个chart包测试一下

这里先从bitnami仓库中下载一个包,然后上传到刚刚搭建的私服(repo)

#增加私服(repo)
helm repo add chartmuseum http://ip:8080
#从公有仓库下载一个nginx chart
helm pull bitnami/nginx
#上传到私服(repo)
helm push nginx-9.4.1.tgz chartmuseum

错误处理

Error: 500: open /charts/nginx-9.4.1.tgz: permission denied

将整个charts目录的权限改成777既可,不是helm push所在的目录,是chartmuseum 所启动的docker ,挂载了charts文件夹,所以需要去chartmuseum 服务器将charts 目录设置为777

操作私服

#列出所有charts 
curl http://ip:8080/api/charts
#查看单个charts
curl http://ip:8080/api/charts/nginx
#删除单个charts
curl -s -X DELETE http://ip:8080/api/charts/consul/6.1.3

22.png

查看结果

更新一下repo ,然后 搜索就可以找到 私服中的包了

helm repo update
helm search repo chartmuseum

23.png

总结

ChartMuseum 私服从部署到使用都非常的简单,且提供了很多api 可以进行二次开发,或直接接入 第三个UI管理工具,比如kubeapps,直接官网出品但是不维护了的Monocular