您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

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

时间:2023-04-06 12:04:08  来源:  作者:Harbor进阶实战

概述

  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插件。

通常在kube.NETes的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.13       2.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

 



Tags:Helm   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,不构成投资建议。投资者据此操作,风险自担。如有任何标注错误或版权侵犯请与我们联系,我们将及时更正、删除。
▌相关推荐
Helm 详细介绍,安装及使用
Helm 是什么Helm 是 Kubernetes 的包管理器。包管理器类似于 Ubuntu 中使用的apt、Centos中使用的yum 或者Python中的 pip 一样,能快速查找、下载和安装软件包。 Helm 由客户...【详细内容】
2023-08-18  Search: Helm  点击:(232)  评论:(0)  加入收藏
Helm基于Harbor中存储的chart快速发布服务
概述&emsp;&emsp;Harbor在v1.6版本开始支持Helm Chart仓库功能,这样就可以利用 harbor 同时管理镜像和 helm charts 了,无需另外部署一套Helm Chart系统。在harbor中,chart仓库...【详细内容】
2023-04-06  Search: Helm  点击:(380)  评论:(0)  加入收藏
▌简易百科推荐
Netflix 是如何管理 2.38 亿会员的
作者 | Surabhi Diwan译者 | 明知山策划 | TinaNetflix 高级软件工程师 Surabhi Diwan 在 2023 年旧金山 QCon 大会上发表了题为管理 Netflix 的 2.38 亿会员 的演讲。她在...【详细内容】
2024-04-08    InfoQ  Tags:Netflix   点击:(0)  评论:(0)  加入收藏
即将过时的 5 种软件开发技能!
作者 | Eran Yahav编译 | 言征出品 | 51CTO技术栈(微信号:blog51cto) 时至今日,AI编码工具已经进化到足够强大了吗?这未必好回答,但从2023 年 Stack Overflow 上的调查数据来看,44%...【详细内容】
2024-04-03    51CTO  Tags:软件开发   点击:(6)  评论:(0)  加入收藏
跳转链接代码怎么写?
在网页开发中,跳转链接是一项常见的功能。然而,对于非技术人员来说,编写跳转链接代码可能会显得有些困难。不用担心!我们可以借助外链平台来简化操作,即使没有编程经验,也能轻松实...【详细内容】
2024-03-27  蓝色天纪    Tags:跳转链接   点击:(13)  评论:(0)  加入收藏
中台亡了,问题到底出在哪里?
曾几何时,中台一度被当做“变革灵药”,嫁接在“前台作战单元”和“后台资源部门”之间,实现企业各业务线的“打通”和全域业务能力集成,提高开发和服务效率。但在中台如火如荼之...【详细内容】
2024-03-27  dbaplus社群    Tags:中台   点击:(9)  评论:(0)  加入收藏
员工写了个比删库更可怕的Bug!
想必大家都听说过删库跑路吧,我之前一直把它当一个段子来看。可万万没想到,就在昨天,我们公司的某位员工,竟然写了一个比删库更可怕的 Bug!给大家分享一下(不是公开处刑),希望朋友们...【详细内容】
2024-03-26  dbaplus社群    Tags:Bug   点击:(5)  评论:(0)  加入收藏
我们一起聊聊什么是正向代理和反向代理
从字面意思上看,代理就是代替处理的意思,一个对象有能力代替另一个对象处理某一件事。代理,这个词在我们的日常生活中也不陌生,比如在购物、旅游等场景中,我们经常会委托别人代替...【详细内容】
2024-03-26  萤火架构  微信公众号  Tags:正向代理   点击:(11)  评论:(0)  加入收藏
看一遍就理解:IO模型详解
前言大家好,我是程序员田螺。今天我们一起来学习IO模型。在本文开始前呢,先问问大家几个问题哈~什么是IO呢?什么是阻塞非阻塞IO?什么是同步异步IO?什么是IO多路复用?select/epoll...【详细内容】
2024-03-26  捡田螺的小男孩  微信公众号  Tags:IO模型   点击:(9)  评论:(0)  加入收藏
为什么都说 HashMap 是线程不安全的?
做Java开发的人,应该都用过 HashMap 这种集合。今天就和大家来聊聊,为什么 HashMap 是线程不安全的。1.HashMap 数据结构简单来说,HashMap 基于哈希表实现。它使用键的哈希码来...【详细内容】
2024-03-22  Java技术指北  微信公众号  Tags:HashMap   点击:(11)  评论:(0)  加入收藏
如何从头开始编写LoRA代码,这有一份教程
选自 lightning.ai作者:Sebastian Raschka机器之心编译编辑:陈萍作者表示:在各种有效的 LLM 微调方法中,LoRA 仍然是他的首选。LoRA(Low-Rank Adaptation)作为一种用于微调 LLM(大...【详细内容】
2024-03-21  机器之心Pro    Tags:LoRA   点击:(12)  评论:(0)  加入收藏
这样搭建日志中心,传统的ELK就扔了吧!
最近客户有个新需求,就是想查看网站的访问情况。由于网站没有做google的统计和百度的统计,所以访问情况,只能通过日志查看,通过脚本的形式给客户导出也不太实际,给客户写个简单的...【详细内容】
2024-03-20  dbaplus社群    Tags:日志   点击:(4)  评论:(0)  加入收藏
相关文章
    无相关信息
站内最新
站内热门
站内头条