【笔记】Helm-3 主题-6 Chart仓库指南

这篇具有很好参考价值的文章主要介绍了【笔记】Helm-3 主题-6 Chart仓库指南。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Chart仓库指南

本节介绍如何创建和使用chart仓库。在高层级中,chart仓库是打包的chart存储和分享的位置。

社区的Helm chart仓位于 Artifact Hub ,欢迎加入。不过Helm也可以创建并运行您自己的chart仓库。该指南将介绍如何操作。

Artifact Hub

先决条件

先阅读 快速开始

阅读 Charts 文档

Helm | 快速入门指南

Helm | Chart

创建一个chart仓库

chart仓库是一个配置了index.yaml文件和一些已经打包chart的HTTP服务器。当您准备好分享chart时,最好的方法是将chart上传到chart仓库。

注意:从Helm 2.2.0开始,客户端支持对仓库进行SSL身份认证。其他身份验证协议可以通过插件提供。

由于chart仓库可以是任何服务于YAML和tar文件并响应GET请求的HTTP服务器,托管您自己的chart仓库时就有很多选择。比如可以使用Google Cloud Storage(GCS),Amazon S3,GitHub页面,甚至创建自己的web服务器。

chart仓库结构

chart仓库由chart包和包含了仓库中所有chart索引的特殊文件index.yaml。通常描述chart的index.yaml也托管在同一个服务器上作为 来源文件 。

Helm | Helm来源和完整性

比如:https://exmaple.com/charts仓库布局可能看起来像这样:

charts/
  |
  |- index.yaml
  |
  |- alpine-0.1.2.tgz
  |
  |- alpine-0.1.2.tgz.prov

在这个案例中,index文件包含了Alpine这一个chart的信息,并提供了下载地址:https://example.com/charts/alpine-0.1.2.tgz。

index.yaml文件不是必须和chart包放在同一个服务器上,但是这样是最方便的。

index文件

index.yaml文件是一个yaml格式的文件。包含了一些包的元信息,包括chart中chart.yaml文件的内容。一个合法的chart仓库必须有一个index文件,包含了chart仓库中每一个chart的信息。heml repo index命令会基于给定的包含chart包的本地目录生成一个index文件。

index文件类似于这样:

apiVersion: v1
entries:
  alpine:
    - created: 2016-10-06T16:23:20.499814565-06:00
      description: Deploy a basic Alpine Linux pod
      digest: 99c76e403d752c84ead610644d4b1c2f2b453a74b921f422b9dcb8a7c8b559cd
      home: https://helm.sh/helm
      name: alpine
      sources:
      - https://github.com/helm/helm
      urls:
      - https://technosophos.github.io/tscharts/alpine-0.2.0.tgz
      version: 0.2.0
    - created: 2016-10-06T16:23:20.499543808-06:00
      description: Deploy a basic Alpine Linux pod
      digest: 515c58e5f79d8b2913a10cb400ebb6fa9c77fe813287afbacf1a0b897cd78727
      home: https://helm.sh/helm
      name: alpine
      sources:
      - https://github.com/helm/helm
      urls:
      - https://technosophos.github.io/tscharts/alpine-0.1.0.tgz
      version: 0.1.0
  nginx:
    - created: 2016-10-06T16:23:20.499543808-06:00
      description: Create a basic nginx HTTP server
      digest: aaff4545f79d8b2913a10cb400ebb6fa9c77fe813287afbacf1a0b897cdffffff
      home: https://helm.sh/helm
      name: nginx
      sources:
      - https://github.com/helm/charts
      urls:
      - https://technosophos.github.io/tscharts/nginx-1.1.0.tgz
      version: 1.1.0
generated: 2016-10-06T16:23:20.499029981-06:00

托管chart仓库

这部分展示了几种提供chart仓库的方法

1、Google cloud存储

第一步是create your GCS bucket。我们会调用fantastic-charts。

【笔记】Helm-3 主题-6 Chart仓库指南,Helm,云原生,kubernetes,k8s

然后使用editing the bucket permissions保证您的bucket是公开的。

【笔记】Helm-3 主题-6 Chart仓库指南,Helm,云原生,kubernetes,k8s

插入这一行保证您的bucket是公开的。

【笔记】Helm-3 主题-6 Chart仓库指南,Helm,云原生,kubernetes,k8s

恭喜,您现在准备好了一个提供chart的空GCS bucket!

您可以使用Google Cloud Storage命令行工具上传您的chart仓库,或者使用GCS的web页面。一个公共的GCS bucket可以通过简单的HTTPS地址访问:https://bucket-name.storage.googleapi.com/。

2、Cloudsmith

也可以使用Cloudsmith设置chart仓库。在 这里 阅读更多关于Cloudsmith配置chart仓库的内容。

Helm Chart Repository

3、JFrog Artifactory

同样,也可以使用JFrog Artifactory配置chart仓库。在 这里 阅读更多关于JFrog Artifactory配置chart仓库的内容。

4、GitHub页面示例

您可以用GitHub页面以类似的方式创建chart仓库。

GitHub允许您使用两种方式提供静态web页面:

通过docs/目录配置项目

通过特定的分支配置项目

我们将使用第二种方式,不过第一种方式也很简单。

第一步是创建您的gh-pages分支。您可以在本地创建:

$ git checkout -b gh-pages

或者在您的GitHub仓库通过web页面使用Branch按钮。

【笔记】Helm-3 主题-6 Chart仓库指南,Helm,云原生,kubernetes,k8s

然后,您要保证您的gh-pages-branch设置为GitHub页面,点击您仓库的Settings并相信找到GitHub pages部分并设置如下:

【笔记】Helm-3 主题-6 Chart仓库指南,Helm,云原生,kubernetes,k8s

默认Source一般设置为gh-pages branch。如果不是默认,把它选上。

如果想使用自定义域名使用custom domain。

然后确保勾选了Enforce HTTPS,这样提供chart时会使用HTTPS。

在这个配置中,您可以使用您的默认分支存储您的chart代码,并使用gh-pages branch作为chart仓库,比如:https://USEERNAM.github.io/REPONAME。TS Charts示例仓库可以访问https://technosophos.github.io/tscharts/。

https://github.com/technosophos/tscharts

如果您想使用GitHub页面托管chart仓库,请查看Chart发布操作。Chart发布操作是GitHub的操作流,可以将GitHub项目转换成自托管的Helm chart仓库,可以使用heml/chart-release CLI工具。

Helm | Chart发布操作用以自动化GitHub的页面Chart

https://github.com/helm/chart-releaser

5、普通web服务器

配置一个一般的服务器来提供Helm chart,您只需执行以下操作:

将index和chart放置在可提供服务的服务器目录中

确保index.yaml文件无需验证即可访问

确保yaml文件是正确的内容类型(text/yaml或text/x-yaml)

比如,如果您想在$WEBROOT/charts提供您的chart,要保证在web的root目录有一个charts/目录,并将index文件和chart放在这个目录中。

6、ChartMuseum仓库服务器

ChartMuseum是一个用Go写的开源Helm Chart仓库服务器,支持云存储后端,包括Google Cloud Storage,Amazon S3,Microsoft Azure Blob Storage,Alibaba Cloud OSS Storage,Openstack Object Storage,Oracle Cloud Infrastructure Object Storage,Baidu Cloud BOS Storage,Tencent Cloud Object Storage,DigitalOcean Spaces,Minio,以及etcd。

https://cloud.google.com/storage/

Cloud Object Storage - Amazon S3 - AWS

Azure Blob Storage | Microsoft Azure

Object Storage Service (OSS)-alibabacloud

Object Storage API — swift documentation

Oracle

对象存储BOS_云存储_分布式存储_数据湖存储-百度智能云

Cloud Object Storage | Tencent Cloud

DigitalOcean Spaces | S3-Compatible Object Storage

MinIO | High Performance, Kubernetes Native Object Storage

etcd

您也可以使用 ChartMuseum 服务从本地文件系统托管一个chart仓库。

ChartMuseum - Helm Chart Repository

7、GitLab包注册表

使用GitLab您可以在您的项目包注册表中发表Helm chart。在 这里 查看更多使用GitLab设置helm包仓库的信息。

https://docs.gitlab.com/ee/user/packages/helm_repository/

管理chart仓库

现在您拥有了一个chart仓库,上串一个chart好index文件到仓库中。仓库中的chart必须打包(helm package chart-name/)且使用正确的版本号(参照 SemVer 2指导)。

Semantic Versioning 2.0.0 | Semantic Versioning

下一步构建一个简单的实力工作流,不过欢迎您使用自己喜欢的工作流来存储和更新您的chart仓库。

一旦您准备好了打包的chart,创建一个新目录,然后将包移动到这个目录中。

$ helm package docs/examples/alpine/

$ mkdir fantastic-charts

$ mv alpine-0.1.0.tgz fantastic-charts/

$ helm repo index fantastic-charts --url https://fantastic-charts.storage.googleapis.com

$ helm package docs/examples/alpine/
$ mkdir fantastic-charts
$ mv alpine-0.1.0.tgz fantastic-charts/
$ helm repo index fantastic-charts --url https://fantastic-charts.storage.googleapis.com

最后一条命令会用刚才创建的本地路径和远程仓库url构建一个index.yaml文件放在给定的目录路径中。

现在您可以使用同步工具或手动上传chart和index文件到chart仓库中。如果使用的是Google Cloud Storage,使用gsutil客户端检查 示范工作流。针对与GitHub,您可以简单地将chart放在合适的目标分支中。。

Helm | 同步你的Chart仓库

添加一个新的chart到已有仓库中

每次您想在仓库中添加一个新的chart时,您必须重新生成index。helm repo index命令会完全无痕重建index.yaml文件。只包括在本地找到的chart。

不过您可以使用--merge参数增量添加到新的chart到现有index.yaml文件中(使用类似GCS的远程仓库时很有用)。执行helm repo index --help了解更多。

确保修订过的index.yaml文件和chart都长传了,如果生成了源文件,也要上传。

与别人分享你的chart

准备好分享您的chart时,只需要告诉别人您的仓库地址就可以了。

他们会通过helm repo add [NAME] [URL]命令将仓库添加到他们的客户端,并使用想引用仓库的任何名称。

$ helm repo add fantastic-charts https://fantastic.storage.googleapis.com

$ helm repo list

$ helm repo add fantastic-charts https://fantastic-charts.storage.googleapis.com
$ helm repo list
fantastic-charts    https://fantastic-charts.storage.googleapis.com

如果chart支持HTTP的基础验证,您也需要提供用户名和密码:

$ helm repo add fantastic-charts https://fantastic-charts.storage.googleapis.com --username my-username --password my-password

$ helm repo list

$ helm repo add fantastic-charts https://fantastic-charts.storage.googleapis.com --username my-username --password my-password
$ helm repo list
fantastic-charts    https://fantastic-charts.storage.googleapis.com

注意:如果不存在有效的index.yaml就无法添加仓库。

注意:如果您的helm仓库使用了类似于自签名的证书,为了跳过CA认证,可以使用helm repo add --insecure-skip-tls-verify ...。

然后,您的用户就可以通过您的chart进行搜索。更新了仓库之后,他们可以使用helm repo update命令获取最新的chart信息。

在内部helm repo add和helm repo update命令会检索index.yaml文件并将其存储在$XDG_CACHE_HOME/helm/repository/cache/目录中。这里是helm search 方法查找chart信息的位置。

————————————

仅用于本人学习

来源:Helm | Docs文章来源地址https://www.toymoban.com/news/detail-801835.html

到了这里,关于【笔记】Helm-3 主题-6 Chart仓库指南的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【笔记】Helm-3 主题-9 Helm高级技术

    Helm高级技术 这部分解释说明了使用Helm的各种高级特性和技术。这部分旨在为Helm的高级用户提供高度自定义和操作chart及发布的信息。每个高级特性都会有它自己的权衡利弊, 因此每个使用它们的都要有Helm的深度知识并小心使用。或者换言之,谨记 Peter Parker 原则 https://en

    2024年01月21日
    浏览(31)
  • 【云原生】Kubernetes应用包管理器Helm

    目录 一、Helm概述 1.1 为什么需要Helm? 1.2 Helm 介绍 1.3 Helm v3 变化 1.4 Helm客户端 1.4.1、部署Helm客户端 1.4.2、Helm常用命令 1.4.3、配置国内Chart仓库 二、Helm基本使用 2.1 Helm基本使用 2.1.1、使用chart部署一个应用 2.1.2、安装前自定义chart配置选项 2.1.3、构建一个Helm Chart 2.1.4、升级、

    2024年02月08日
    浏览(34)
  • 【笔记】Helm-3 主题-5 Helm来源和完整性

    Helm来源和完整性 Helm有一个来源工具帮助chart用户检测包的完整性和来源。使用基于PKI,GnuPG及流行包管理器的行业标准工具,Helm可以生成和检测签名文件。 概述 完整性是通过比较chart的出处记录来建立的。出处记录存储在出处文件,和打包好的chart放在一起。比如,如果有

    2024年01月18日
    浏览(27)
  • 【云原生】kubernetes应用程序包管理工具Helm

        什么是 Helm 安装 Helm 重要概念 使用 Helm 1 简介 官网地址: Helm Helm是一个Kubernetes应用程序包管理工具,它允许你轻松管理和部署Kubernetes应用程序。Helm通过使用称为Charts的预定义模板来简化Kubernetes应用程序的部署和管理。Chart包含了一组Kubernetes对象定义,可以描述一个应用

    2024年02月09日
    浏览(32)
  • Kubernetes技术--k8s核心技术Helm

    1.引入 我们先回顾一下之前部署 一个应用 的过程,如部署nginx,实现效果如下所示: -1.编写deployment的yaml文件,然后运行。 -2.使用service中的NodePort对外暴漏端口 -3.为了弥补Nodeport的缺陷,使用ingress实现转发        这样一个应用就部署完了,这一种情况相对于如果你需要部署

    2024年02月09日
    浏览(38)
  • Kubernetes/k8s之包管理器helm

    在没有helm之前,我们要部署一个服务,deployment、service ingress 的作用通过打包的方式。把deployment、service ingress打包在一块,一键式部署服务。类似于yum功能。是官方提供的类似安装仓库的功能,可以实现一键化部署应用 helm的概念 由三个部分组成 chart:helm的软件包,部署包,

    2024年01月23日
    浏览(31)
  • 【笔记】Helm-3 主题-7 使用基于OCI的注册中心

    使用基于OCI的注册中心 从Helm 3开始,可以使用具有 OCI 支持的容器注册中心来存储和共享chart包。从Helm v3.8.0开始,默认启用OCI支持。 Open Container Initiative - Open Container Initiative v3.8.0版本之前对OCI的支持 OCI支持在Helm v3.8.0版本从试验阶段过度成为普通可用。在之前版本中,对O

    2024年01月20日
    浏览(26)
  • 【笔记】Helm-3 主题-15 SQL存储后端的权限管理

    SQL存储后端的权限管理 该文档旨在提供用户使用SQL存储后端时设置和管理权限的指导。 介绍 为了处理权限,Helm利用了Kubernetes的RBAC特性。使用SQL存储后端时,Kubernetes的角色不能被用于确认用户是否可以访问给定的资源。该文档会展示如果创建和管理权限。 初始化 Helm CLI首

    2024年01月24日
    浏览(22)
  • 云原生之深入解析Kubernetes应用包管理器Helm的保姆级教程和实战

    ① 什么是 Helm? 我们可以将 Helm 看作 Kubernetes 下的 apt-get/yum,Helm 是 kubernetes 的包管理器,Helm 仓库里面只有配置清单文件,而没有镜像,镜像还是由镜像仓库来提供,比如 hub.docker.com、私有仓库。 想了解更多 Helm 的信息,请参考:官方文档。 ② Helm 架构 ③ Helm 安装 可以到

    2024年02月10日
    浏览(46)
  • 【K8S 云原生】K8S的包包管理器-helm

    目录 一、helm概念 1、什么是helm 2、helm的概念: 二、实验部署: 1、安装helm: 2、对chart仓库的基本使用: 2.1、查看和更新chart仓库 2.2、安装chart 2.3、卸载chart: 3、helm自定义模版: 3.1、使用官方模版 3.2、使用自定义模版 1、方法1:基于目录安装: 2、方法2:基于目录打包好

    2024年01月23日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包