Helm 私有仓库Chartmuseum搭建指南
devopscube,Devops魔方为个人公众号,主要用于一些有关Devops,容器,kubernetes,自动化运维,以及敏捷开发相关的分享。同时也会不定期的分享一些个人心得,比如推荐一些个人使用的办公小软件,对一些事件的评论等。欢迎大家关注交流。简介Helm chart对仓库的要求并不高,需要你对外提供yaml文件和tar文件的web服务即可。但是实际的操作中我们还需要考虑更多的操...
devopscube,Devops魔方为个人公众号,主要用于一些有关Devops,容器,kubernetes,自动化运维,以及敏捷开发相关的分享。同时也会不定期的分享一些个人心得,比如推荐一些个人使用的办公小软件,对一些事件的评论等。欢迎大家关注交流。
简介
Helm chart对仓库的要求并不高,需要你对外提供yaml文件和tar文件的web服务即可。但是实际的操作中我们还需要考虑更多的操作。
Chartmuseum除了给我们提供一个类似于web服务器的功能之外,还提供了其他有用的功能,便于日常我们私有仓库的管理。
- 根据chart文件自动生成index.yaml(无须使用helm repo index手动生成)
- helm push的插件,可以在helm命令之上实现将chart文件推送到chartmuseum上
- 相应的tls配置,Basic认证,JWT认证(Bearer token认证)
- 提供了Restful的api(可以使用curl命令操作)和可以使用的cli命令行工具
- 提供了各种后端存储的支持(Amazon s3, Google Cloud Storage, 阿里、百度、腾讯,开源对象存储等)
- 提供了Prometheus的集成,对外提供自己的监控信息。
- 没有用户的概念,但是基于目录实现了一定程度上的多租户的需求。
安装
官方提供了相应的helmchart,可以在kuberentes上直接安装。也提供了docker的镜像方式安装。本文介绍docker的方式进行安装部署。
最新的稳定版本是v0.12.0,下面采用local 存储的方式安装。
docker run --name=chartmuseum --restart=always -it -d \
-p 8080:8080 \
-v ~/charts:/charts \
-e STORAGE=local \
-e STORAGE_LOCAL_ROOTDIR=/charts \
chartmuseum/chartmuseum:v0.12.0
因为制定了本地的存储~/charts,可以在用户的home目录下看到该文件夹生成,所有上传的chart都会放到该文件夹下。
通过页面访问,我们可以看到服务已经正常运行了
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-C1jIKYbV-1585811615264)(screenshots/image-20200402133322643.png)]
测试
# 在本地测试,如果helm客户端在其他机器,请修改localhost为指定ip
$ helm repo add chartrepo http://localhost:8080
"chartrepo" has been added to your repositories
$ helm repo list
NAME URL
chartrepo http://localhost:8080
# 我们创建并打包一个新的chart
$ helm create test
Creating test
$ helm package test
Successfully packaged chart and saved it to: /home/lijinyang/test-0.1.0.tgz
# 将生成的tgz文件放到chartmuseum的文件夹下
$ mv test-0.1.0.tgz ~/charts/
# 然后helm运行helm repo update更新,并搜索
$ helm repo update
Hang tight while we grab the latest from your chart repositories...
...Successfully got an update from the "chartrepo" chart repository
Update Complete. ⎈ Happy Helming!⎈
$ helm search repo test
NAME CHART VERSION APP VERSION DESCRIPTION
chartrepo/test 0.1.0 1.16.0 A Helm chart for Kubernetes
$ helm show chart chartrepo/test
apiVersion: v2
appVersion: 1.16.0
description: A Helm chart for Kubernetes
name: test
type: application
version: 0.1.0
helm push 插件
# 安装helm push 插件
# helm plugin install https://github.com/chartmuseum/helm-push.git
# helm push命令将chart发布到chartmuseum上
# helm push test-0.1.0.tgz chartrepo
# 更新helm repo,搜索刚刚上传的chart。
# helm repo upgrade
# helm search repo chartrepo
NAME CHART VERSION APP VERSION DESCRIPTION
chartmuseum/test 0.1.0 1.16.0 A Helm chart for Kubernetes
总结
本文简单介绍了有关chartmuseum的安装和使用。
更多推荐
所有评论(0)