0
点赞
收藏
分享

微信扫一扫

Harbor进阶:使用Harbor存储chart

Harbor进阶:使用Harbor存储chart_云原生

【摘要】 在Harbor私有镜像仓库中启用ChartMusum插件,实现在Harbor中存储Chart。操作步骤详细,可评论区留言获取PDF文档。

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的支持。

由于Helm 3支持OCI仓库服务的功能还处于实验阶段,所以大多数用户还在使用ChartMuseum仓库服务。Harbor 2.0在设计时保留了基于ChartMuseum的仓库服务,这样不仅支持老版本的Harbor平滑升级到Harbor 2.0,还给用户留了缓冲时间,将Chart从ChartMuseum转移到OCI仓库服务。

Harbor的ChartMuseum服务提供了图形管理界面来管理Chart,进入一个Harbor项目,单击“Helm Charts”页面,可以查看Chart列表及每个Chart的名称、状态、版本数量、创建时间。可以单击“下载”按钮拉取Chart到本地,也可以单击“删除”按钮删除选中的Chart,


一、安装ChartMuseum插件

在harbor服务器中进行操作。如果你在安装harbor时已经安装chartmuseum插件可以忽略该操作步骤!


1.1 修改Harbor配置文件

在harbor.yml配置文件中配置chartmuseum的相关参数。

使用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表示使用绝对路径!


1.2 停止Harbor服务

;;;;docker-compose stop

输出结果:

Stopping nginx             ... done
Stopping harbor-jobservice ... done
Stopping harbor-core       ... done
Stopping registryctl       ... done
Stopping harbor-portal     ... done
Stopping harbor-db         ... done
Stopping redis             ... done
Stopping registry          ... done
Stopping harbor-log        ... done

Harbor进阶:使用Harbor存储chart_容器_02


1.3 注入配置

[root@lidabai harbor]# ./prepare


1.4 安装chartmuseum

在执行install.sh安装脚本时,通过--with-chartmuseum参数安装chart插件。

[root@lidabai harbor]# ./install.sh  --with-notary --with-trivy --with-chartmuseum

输出结果:

✔ ----Harbor has been installed and started successfully.----  #输出该信息则表示安装成功

安装完后会自动启动Harbor!


1.5 查看组件服务状态

[root@lidabai harbor]# docker-compose ps

输出结果:

NAME             COMMAND         SERVICE             STATUS              PORTS
chartmuseum         "./docker-entrypoint…"   chartmuseum         running (healthy)   
harbor-core         "/harbor/entrypoint.…"   core                running (healthy)   
harbor-db           "/docker-entrypoint.…"   postgresql          running (healthy)   
harbor-exporter     "/harbor/entrypoint.…"   exporter            running             
harbor-jobservice   "/harbor/entrypoint.…"   jobservice          running (healthy)   
harbor-log          "/bin/sh -c /usr/loc…"   log                 running (healthy)   127.0.0.1:1514->10514/tcp
harbor-portal       "nginx -g 'daemon of…"   portal              running (healthy)   
nginx               "nginx -g 'daemon of…"   proxy               running (healthy)   0.0.0.0:4443->4443/tcp, 0.0.0.0:80->8080/tcp, 0.0.0.0:443->8443/tcp, 0.0.0.0:9090->9090/tcp
notary-server       "/bin/sh -c 'migrate…"   notary-server       running             
notary-signer       "/bin/sh -c 'migrate…"   notary-signer       running             
redis               "redis-server /etc/r…"   redis               running (healthy)   
registry            "/home/harbor/entryp…"   registry            running (healthy)   
registryctl         "/home/harbor/start.…"   registryctl         running (healthy)   
trivy-adapter       "/home/scanner/entry…"   trivy-adapter       running (healthy)

Harbor进阶:使用Harbor存储chart_容器_03


1.6 验证

登录Harbor UI管理界面:

【项目】>【library】> 【Helm Charts】

![image-20220531165826947](H:\【2】云原生技术栈\【2】镜像与Harbor镜像仓库\【6】Harbor博客专栏撰写\第4篇、Harbor进阶实战篇\image-20220531165826947.png)


二、上传Chart到Harbor

将制作好的chart包上传到harbor的项目中

Harbor进阶:使用Harbor存储chart_镜像_04

                  Harbor进阶:使用Harbor存储chart_容器_05

Harbor进阶:使用Harbor存储chart_容器_06

然后点击【上传】

Harbor进阶:使用Harbor存储chart_运维_07

Harbor进阶:使用Harbor存储chart_云原生_08


三、查看chart概要

在Harbor UI点击chart名称即可查看该chart的概要信息。包括chart介绍、安装、卸载、配置等。


四、添加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

参数说明:

--ca-file:为harbor颁发证书的颁发者证书;

--key-file: Harbor的私钥;

--cert-file:指定harbor的证书;

--username:用户名,该用户应该具体chart所在项目的权限;

--password:指定用户名密码;

​​https://192.168.2.22/chartrepo/lidabai为chart连接地址,chartrepo固定格式,lidabai为chart所在项目的名称。​​


4.1 拷贝harbor相关证书

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

[root@master Chart]# scp 192.168.2.22:/app/harbor-cert/ca.pem  ./
[root@master Chart]# scp 192.168.2.22:/app/harbor-cert/harbor.pem  ./
[root@master Chart]# scp 192.168.2.22:/app/harbor-cert/harbor-key.pem  ./


4.2 添加harbor的chart到本地

[root@master 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

表示添加成功!

Harbor进阶:使用Harbor存储chart_容器_09


4.3 查看验证

[root@master Chart]# helm repo list
NAME       URL                                                   
aliyun     https://kubernetes.oss-cn-hangzhou.aliyuncs.com/charts
my-harbor  https://192.168.2.22/chartrepo/lidabai     #这是我添加的chart仓库


五、安装Chart

安装命令:

;;;;helm install  <name>--ca-file <ca file> --cert-file <cert file> --key-file <key file>  \
   ;--username=<username> ;--password=<password> --version 2.0.1 <repo name>/memcached


5.1 搜索chart

从我们添加的harbor chart中搜索有哪些chart包。

[root@master Chart]# helm search repo my-harbor
NAME            CHART VERSION  APP VERSION  DESCRIPTION     
my-harbor/memcached   2.0.1       Free & open source, high-performance, distribut...


5.2 安装chart

[root@master 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
Error: INSTALLATION FAILED: unable to build kubernetes objects from release manifest: unable to recognize "": no matches for kind "StatefulSet" in version "apps/v1beta1"

这里演示的memcached有问题,可自行用其它没问题的chart进行测试!

比较常用安装chart的方法是将chart pull下来,解压修改后再进行安装。

[root@master Chart]# helm pull  my-harbor/memcached
[root@master Chart]# ls
ca.pem  harbor-key.pem  harbor.pem  memcached-2.0.1.tgz

Harbor进阶:使用Harbor存储chart_镜像_10

举报

相关推荐

0 条评论