Helm基于Harbor中存储的chart快速发布服务

Helm基于Harbor中存储的chart快速发布服务

作者:键客李大白 2023-04-06 10:08:58

云计算

云原生 ChartMuseum:提供了API管理非OCI规范的Helm Chart。在安装了ChartMuseum组件后,当用户使用“helm”命令向Harbor推送或拉取Chart时,Harbor的Core组件会首先收到请求,在校验后将请求转发给ChartMuseum进行Chart文件的读写。

概述

  Harbor在v1.6版本开始支持Helm Chart仓库功能,这样就可以利用 harbor 同时管理镜像和 helm charts 了,无需另外部署一套Helm Chart系统。在harbor中,chart仓库由chartmuseum以插件的方式提供,可以自己选择安装或者不安装。

ChartMuseum:提供了API管理非OCI规范的Helm Chart。在安装了ChartMuseum组件后,当用户使用“helm”命令向Harbor推送或拉取Chart时,Harbor的Core组件会首先收到请求,在校验后将请求转发给ChartMuseum进行Chart文件的读写。

  随着兼容OCI规范的Helm Chart在社区上被更广泛地接受,Helm Chart能以Artifact的形式在Harbor中存储和管理,不再依赖ChartMuseum,因此Harbor会在后续版本中移除对ChartMuseum的支持。

  虽然被废弃,但是并不意味着不能用Harbor存储chart了,而是用 OCI chart替代。

  • 从v2.6.0 开始弃用Chartmuseum,并在v2.8.0中开始删除。更多详情,请参阅讨论:https://github.com/goharbor/harbor/discussions/15057 从 v2.6.0 开始弃用 Notary(签名者和服务器),并在 v2.8.0 中开始删除。更多详情,请参阅讨论:https://github.com/goharbor/harbor/discussions/16612
  • Harbor版本必须是1.6+到2.8.0才支持存储Helm Chart(我这用的是2.6.2);
  • 默认新版harbor不会启用chart repository service,需要在安装harbor时指定–with-chartmuseum参数;
  • 创建项目chartrepo(公有项目);

环境说明

Harbor版本: 2.6.2Harbor地址:​https://192.168.2.30:443​部署路径: /app/harbor证书位置:/app/harbor/ssl/

安装Chartmuseum组件

2.1 修改配置文件

  在absolute_url​参使用ChartMuseum​组件时,客户端获取到的Chart的index.yaml​中包含的URL是否为绝对路径。在不配置该项时,ChartMuseum组件会返回相对路径,默认为disabled。

$ vim  harbor.yml
chart:
# Change the value of absolute_url to enabled can enable absolute url in chart
absolute_url: enabled

enabled表示使用绝对路径!

2.2 停止Harbor

$ docker-compose stop

2.3 注入配置

  执行./prepare将新的配置注入到各个组件中。

$  ./prepare

2.4 安装chartmuseum

  在执行install.sh安装时,通过–with-chartmuseum参数安装chart插件,安装完后会自动启动Harbor。

$ ./install.sh--with-notary --with-trivy --with-chartmuseum
----Harbor has been installed and started successfully.---- #输出该信息则表示安装成功

2.5 查看组件服务状态

  通过docker-compose ps命令可以看到harbor的组件中多了个chartmuseum的容器。

$ docker-compose ps

2.6 验证是否安装了chartmuseum组件

登录Harbor UI管理界面:【项目】==>【library】==> 【Helm Charts】

安装helm-push插件

通过Harbor UI界面可以将制作好的chart包直接上传到Harbor,但是命令行上传、下载Chart则需要安装helmpush插件。

通常在kubernetes的master节点进行操作,前提是已经安装好helm。

3.1 在线直接安装

$ helm plugin install https://github.com/chartmuseum/helm-push
Downloading and installing helm-push v0.9.0 ...
https://github.com/chartmuseum/helmpush/releases/download/v0.9.0/helmpush_0.9.0_linux_amd64.tar.gz
Installed plugin: push
$ helm plugin list
NAME VERSION DESCRIPTION
cm-push 0.10.3 Push chart package to ChartMuseum
$ ls /root/.local/share/helm/plugins/helmpush/bin/helmpush
/root/.local/share/helm/plugins/helm-push/bin/helmpush

上传Chart包到Harbor

4.1 Harbor UI上传Chart

  登录Harbor管理界面,进入要将chart包上传的projects(项目),选择【Helm Charts】,然后选择【上传】按钮将本地电脑中制作好的Chart包上传到Harbor中。

然后点击【上传】

4.2 命令行上传Chart

1)下载测试用的chart包

$ helm repo list
NAME URL
bitnami https://charts.bitnami.com/bitnami
ali-incubator https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/
$ helm search repo bitnami | head -2
NAME CHART VERSION APP VERSION DESCRIPTION
bitnami/airflow 14.0.132.5.1 Apache Airflow is a tool to express and execute...
$ helm pull bitnami/airflow
$ ls
airflow-14.0.13.tgz

2)添加Harbor repo

  • 拷贝https相关证书
$ scp 192.168.2.30:/app/harbor/ssl/{ca.pem,harbor.pem,harbor-key.pem}  ./
  • 添加repo
$ helm repo add harbor-library https://192.168.2.30:443/chartrepo/library --username admin --password Harbor12345 \
--ca-file ca.pem --key-file harbor-key.pem --cert-file harbor.pem
"harbor-library" has been added to your repositories

harbor-library​:自定义的repo名称;https://192.168.2.30:443/chartrepo/library​为chart连接地址,chartrepo固定格式,“library”为chart所在项目的名称,请结合自身的实际环境修改。–username​:指定Harbor的用户名(该用户必须对project对象拥有权限);–password​:指定密码;–ca-file​:为harbor颁发证书的颁发者证书;–key-file​: Harbor的私钥;–cert-file:指定harbor的证书;

参数

含义

Cfssl工具格式

Openssl工具格式

–ca-file

CA证书

ca.pem

ca.crt

–cert-file

证书文件

harbor.pem

harbor.crt

–key-file

私钥

harbor-key.pem

  • 查看是否添加成功
$ helm repo list
NAME URL
harbor-library https://192.168.2.30:443/chartrepo/library

3)将打包应用从命令行push到harbor

格式:helm cm-push chart包 repo名称

$ helm cm-push airflow-14.0.13.tgz harbor-library \
--ca-file ca.pem --key-file harbor-key.pem \
--cert-file harbor.pem

4)验证是否上传成功

基于Harbor中的Chart包发布服务

  使用helm包管理工具将存放在Harbor中的chart包部署到kubernetes集群中

5.1 查看chart概要

  在Harbor UI点击chart名称即可查看该chart的概要信息,包括chart介绍、安装、卸载、配置等,可以根据概要信息来使用相关的管理命令。

图5.1-1

图5.1-2

图5.1-3

5.2 添加Harbor作为Chart仓库

添加的命令格式:

$ helm repo add --ca-file <ca file> \
--cert-file <cert file> --key-file <key file> \
--username <username> \
--password <password> <repo name> https://192.168.2.22/chartrepo/lidabai

1)拷贝harbor相关证书

将harbor相关的证书拷贝到Helm所在服务器(一般是kubernetes集群中的master节点)。

$ scp 192.168.2.30:/app/harbor-cert/{ca.pem, harbor.pem, harbor-key.pem}  ./

2)添加harbor的chart仓库

$ helm repo add my-harbor https://192.168.2.22/chartrepo/lidabai \
--username admin --password Harbor12345 \
--ca-file ca.pem --cert-file harbor.pem --key-file harbor-key.pem

输出结果:

"my-harbor" has been added to your repositories

表示添加成功!

3)查看验证

$ helm repo list
NAME URL
aliyun https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
my-harbor https://192.168.2.22/chartrepo/lidabai

 5.3 发布服务

$ helm install --ca-file <ca file> --cert-file <cert file> --key-file <key file>  \
--username=<username> --password=<password> --version 2.0.1 <repo name>/memcached
  • 搜索chart
$ helm search repo my-harbor
NAME CHART VERSION APP VERSION DESCRIPTION
my-harbor/memcached 2.0.1 Free & open source, high-performance, distribut...
  • 安装chart
$ helm install  memcached-test \
--ca-file ca.pem --cert-file harbor.pem \
--key-file harbor-key.pem \
>--username=admin --password=Harbor12345 \
--version 2.0.1 my-harbor/memcached

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/231472.html<

(0)
运维的头像运维
上一篇2025-04-19 17:28
下一篇 2025-04-19 17:29

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注