Helm 私仓配置:Harbor、Chart 仓库与 Push 插件

来自AI助手的总结
介绍Harbor启用Helm Chart、配置仓库并推送安装Chart及常见问题处理
Helm 私仓配置:Harbor、Chart 仓库与 Push 插件

一、配置harbor支持helm chart存储

如下图登录harbor 仓库 ,选取项目这一栏没有helm chart 这个关键字就说明harbor仓 库支持暂不支持存放chart。

Day05-单体应用容器化转型-图11

开启Charts功能:


#停掉已安装的harbor

[root@harbor-01 ~]# cd /opt/harbor/

[root@harbor-01 harbor]# docker-compose down -v

#启动时带上参数 --with-chartmuseum

[root@harbor-01 harbor]# ./install.sh --with-chartmuseum

等命令执行完再登录就能看到 上图中的helm chart字样了

image-20250330214040233

二、配置国内Chart仓库

添加国内Chart仓库


[root@master01 ~]# helm repo add stable http://mirror.azure.cn/kubernetes/charts

[root@master01 ~]# helm repo add aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts

验证,观察到已添加成功

[root@master01 ~]# helm repo list
NAME            URL
ingress-nginx   https://kubernetes.github.io/ingress-nginx
stable          http://mirror.azure.cn/kubernetes/charts
aliyun          https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts

三、安装push插件

GitHub – chartmuseum/helm-push:https://github.com/chartmuseum/helm-push/releases

使用如下的方式下载 helm-push 安装包:

方式1-在线安装:


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

方式2-离线安装:

helm-push_0.10.0_linux_amd64.tar.gz 下载链接:

https://github.com/chartmuseum/helm-push/releases/download/v0.10.0/helm-push_0.10.0_linux_amd64.tar.gz

安装位置: helm env 获取的 HELM_PLUGINS 这个变量的值当前用户主目录的.local 目录下


#创建 helm-push 目录

[root@master01 5]# mkdir -p /root/.local/share/helm/plugins/helm-push

#把你下载好的tar包拷到创建的/root/5/目录下

[root@master01 5]# cp helm-push_0.10.0_linux_amd64.tar.gz /root/.local/share/helm/plugins/helm-push

#到目录下解压文件

[root@master01 5]# cd /root/.local/share/helm/plugins/helm-push

[root@master01 helm-push]# tar -zxvf helm-push_0.10.0_linux_amd64.tar.gz

#执行 helm plugin list 就能看到已经安装好的push插件了,这里一定要记住名字是cm-push而不是push

[root@master01 helm-push]# helm plugin list

NAME    VERSION DESCRIPTION

cm-push 0.10.0  Push chart package to ChartMuseum

四、添加repo

添加repo示例说明:


# helm repo add  --username admin --password xxxxxx devopsrepo http://harbor.zhang-qing.com/chartrepo/demo

添加repo示例说明:


[root@master01 helm-push]# helm repo add devopsrepo https://harbor.zhang-qing.com/chartrepo/demo \

  --username admin \

  --password 'Harbor12345'

验证


[root@master01 helm-push]# helm repo list | grep devops

devopsrepo      https://harbor.zhang-qing.com/chartrepo/demo

五、推送与安装Chart


# 生成指定包

[root@master01 ~]# cd /root/5/demo-helm/

[root@master01 demo-helm]# helm package .

Successfully packaged chart and saved it to: /root/5/demo-helm/demohelm-0.2.2.tgz

#添加repo

[root@master01 helm-push]# helm repo add devopsrepo http://harbor.zhang-qing.com/chartrepo/demo \

  --username admin \

  --password 'Harbor12345'

# 上传包到harbor仓库

[root@master01 demo-helm]#

helm cm-push demohelm-0.2.2.tgz https://harbor.zhang-qing.com/chartrepo/demo \

  --username=admin \

  --password='Harbor12345'

Pushing demohelm-0.2.2.tgz to https://harbor.zhang-qing.com/chartrepo/demo...

Done.

浏览器输入https://harbor.zhang-qing.com/登录harbor,账号密码为admin/Harbor12345

image-20250508195127862

六、问题处理

问题现象:

在推送和安装Chart时出现,如下报错信息

[root@master01 demo-helm]#
helm cm-push demohelm-0.2.2.tgz https://harbor.zhang-qing.com/chartrepo/demo \
  --username=admin \
  --password='Harbor12345'
Error: 308: could not properly parse response JSON: <html>
<head><title>308 Permanent Redirect</title></head>
<body>
<center><h1>308 Permanent Redirect</h1></center>
<hr><center>nginx/1.22.0</center>
</body>
</html>
...
...

问题处理:

将http://harbor.zhang-qing.com/chartrepo/demo替换为https://harbor.zhang-qing.com/chartrepo/demo

[root@master01 demo-helm]#
helm cm-push demohelm-0.2.2.tgz https://harbor.zhang-qing.com/chartrepo/demo \
  --username=admin \
  --password='Harbor12345'
© 版权声明
THE END
喜欢就支持一下吧
点赞9 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容