Author:rab
前言:我们说 Helm 的私有仓库可以是任何 HTTP Server(如 Nginx、Apache 等),而 Harbor 自带 Helm 私有仓库的功能(但默认是禁用的,需要我们手动启用),如果为了节约服务器成本,可无需额外再部署 HTTP Server,直接使用 Harbor 的 Chart 功能即可。接下来,我们将演示如何把 Helm Chart 推送至 Harbor 私有仓库中,以及如何拉取 Harbor 中的 Chart 资源。
1、下载 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
2、安装 helm-push 插件
-
先查看 Helm 的插件目录
helm env
-
解压下载的 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
-
查看以下解压出来的文件
-
查看 helm-push 插件是否安装
helm plugin list
3、启用 Harbor 支持 Chart
vim harbor.yml
-
修改前
-
修改后
-
停止 Harbor 服务
docker-compose stop
-
注入配置
./prepare
-
安装 ChartMuseum
./install.sh --with-chartmuseum
-
验证 Harbor 是否启用 Helm Chart
如下图,该 billiards 项目下有 Helm Chart 字段了,证明我们已经成功启用 Harbor 的 Chart 功能了,但目前还没有任何 Chart,接下来我们将 Push 一个 Chart 至 Harbor。
4、添加 Harbor 作为 Helm Chart 仓库
helm repo add harbor_repo --username=admin --password=zhurs@123 http://192.168.56.143/chartrepo/billiards
# 说明
# chartrepo:必选项
# billiards:是我们在Harbor中自定义的项目名
# 验证
helm repo list
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
6、拉取 Chart
helm repo update
# 上传新的Helm Chart后,需要更新Helm存储库的索引文件,才能正常拉取。
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名称即可
7、安装 Chart
helm install test-helm --username=admin --password=zhurs@123 --version 0.1.0 harbor_repo/mychart
安装过程就不再演示了,直接执行后即可部署你的 K8s 集群服务了!
Harbor 的部署可参考我前面的博文《Harbor 私有镜像仓库部署》。
—END