helm repository 相关
chart repo是一个可用来存储index.yaml与打包的chart文件的HTTP server。当要分享chart时,需要上传chart文件到chart仓库,任何一个能够提供yaml与tar文件的HTTP server都可以当作chart仓库,比如自己的web服务器。官方的chart仓库由kubernetes Charts维护,helm允许我们创建私有的chart仓库。
一个chart仓库由一个chart包与index.yaml文件组成,index.yaml记录了chart仓库中全部chart的索引,一个本地chart仓库的布局例子如下:
apiVersion: v1
entries:
test-chart:
- apiVersion: v1
appVersion: "1.0"
created: "2019-07-29T15:15:25.7848643+08:00"
description: A Helm chart for Kubernetes
digest: 5e3215c970b7e9ca58522104bce7fe107a891cca3363af174fda7c7d69ae042a
name: test-chart
urls:
- http://127.0.0.1:8879/test-chart-0.1.0.tgz
version: 0.1.
test-chart2:
- apiVersion: v1
appVersion: "1.0"
created: "2019-07-29T15:19:25.9210099+08:00"
description: A Helm chart for Kubernetes
digest: sha256:e33bab5a2be0738e2fbe9800348d2d250d63938d223c9e3d29a8e5b12f23f4a3
name: test-chart2
urls:
- http://127.0.0.1:8879/charts/test-chart2-0.1.0.tgz
version: 0.1.
generated: "2019-07-29T15:15:25.7827829+08:00"
~\.helm\repository\local\index.yaml文件中记录了chart的各种信息,例如:名称、版本、url等。
1. 创建一个helm
$ helm create test-chart
Creating test-chart
2. 目录结构如下
├─test-chart
├── charts
├── Chart.yaml
├── templates
│ ├── deployment.yaml
│ ├── _helpers.tpl
│ ├── NOTES.txt
│ └── service.yaml
└── values.yaml
3. 编辑values文件
replicaCount: image:
repository: daemonza/test
tag: latest
pullPolicy: IfNotPresent service:
name: test
type: ClusterIP
internalport:
externalPort: resources:
limits:
cpu: 100m
memory: 128Mi
requests:
cpu: 100m
memory: 128Mi
3. 到test-chart目录下,对Chart进行校验
$ helm lint
==> Linting .
[INFO] Chart.yaml: icon is recommended
[ERROR] templates/: render error in "test-chart/templates/NOTES.txt": template: test-chart/templates/NOTES.txt::: executing "test-chart/templates/NOTES.txt" at <.Values.ingress.enabled>: nil pointer evaluating interface {}.enabled Error: chart(s) linted, chart(s) failed
根据提示进行修改,直到校验成功,会出现如下输出
$ helm lint
==> Linting .
[INFO] Chart.yaml: icon is recommended chart(s) linted, no failures
4. 退出test-chart目录,对Chart进行打包
(根据输出可以看到Chart被打包成了一个压缩包:test-chart-0.1.0.tgz,同时被save到了helm的本地仓储中)
$ helm package test-chart --debug
Successfully packaged chart and saved it to: D:\zhuojian-projects\rubik-T\health-doc\详细设计\helm\test-chart-0.1..tgz
[debug] Successfully saved D:\zhuojian-projects\rubik-T\health-doc\详细设计\helm\test-chart-0.1..tgz to C:\Users\YFZX-MY-\.helm\repository\local
5. 此时,repository目录中的Chart已经被helm进行管理,使用命令可以找到生成的Chart包
$ helm search test
NAME CHART VERSION APP VERSION DESCRIPTION
local/test-chart 0.1. 1.0 A Helm chart for Kubernetes
6. 本地启动一个repository server
如果使用helm search test发现找不到生成的Chart包,可以在本地启动一个repository server,并将其加入到helm repo列表中
$ helm serve&
Now serving you on 127.0.0.1:
将本地仓储加入到helm repo列表中
$ helm repo add local http://127.0.0.1:8879
"local" has been added to your repositories
查看仓储列表
$ helm repo list
NAME URL
stable https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts/
local http://127.0.0.1:8879
incubator https://aliacs-app-catalog.oss-cn-hangzhou.aliyuncs.com/charts-incubator/
再次查找test chart包,就能够找到了
$ helm search test
NAME CHART VERSION APP VERSION DESCRIPTION
local/test-chart 0.1. 1.0 A Helm chart for Kubernetes
helm repository 相关的更多相关文章
- 【分享】几篇关于Repository 相关的讨论、提问、文章
		
一.引入 最近在了解DDD,对于里面Repository 有点疑问和关注.闲来无事,去找了一些文章,来补补.在这里分享出来给大家.文章大多数都是英文的,见谅哈. 二.推荐列表 2.1 Filters ...
 - Helm学习笔记
		
Helm学习笔记 Helm 是 Kubernetes 生态系统中的一个软件包管理工具.本文将介绍 Helm 中的相关概念和基本工作原理,并通过一个具体的示例学习如何使用 Helm 打包.分发.安装.升 ...
 - Kubernetes系列之Helm介绍篇
		
本次系列使用的所需部署包版本都使用的目前最新的或最新稳定版,安装包地址请到公众号内回复[K8s实战]获取 介绍 Helm 是 Deis 开发的一个用于 Kubernetes 应用的包管理工具,主要用来 ...
 - helm 部署
		
Helm 基本概念 Helm 可以理解为 Kubernetes 的包管理工具,可以方便地发现.共享和使用为Kubernetes构建的应用,它包含几个基本概念 Chart:一个 Helm 包,其中包含了 ...
 - Kubernetes学习之路(二十五)之Helm程序包管理器
		
目录 1.Helm的概念和架构 2.部署Helm (1)下载helm (2)部署Tiller 3.helm的使用 4.chart 目录结构 5.chart模板 6.定制安装MySQL chart (1 ...
 - kubernetes实战(十):k8s使用Helm安装harbor
		
1.基本概念 对于复杂的应用中间件,需要设置镜像运行的需求.环境变量,并且需要定制存储.网络等设置,最后设计和编写Deployment.Configmap.Service及Ingress等相关yaml ...
 - Helm安装和项目使用
		
整体架构 1.为什么要用? 首先在原来项目中都是基于yaml文件来进行部署发布的,而目前项目大部分微服务化或者模块化,会分成很多个组件来部署,每个组件可能对应一个deployment.yaml,一个s ...
 - Helm入门
		
前言:Helm是GO语言编写的,是管理kubernetes集群中应用程序包的客户端工具.Helm是类似于centos上的yum工具或Ubuntu上的apt-get工具.对于应用发布者而言,可以通过He ...
 - kubernetes实战篇之helm完整示例
		
系列目录 构建一个 Helm Chart 下面我们通过一个完整的示例来学习如何使用 Helm 创建.打包.分发.安装.升级及回退Kubernetes应用. 创建一个名为 mychart 的 Chart ...
 
随机推荐
- maven的基础入门
			
Maven是Java世界中一个很好使的项目管理工具,关于[好使]这个特性从项目的使用量上就能体现出来,虽然说现在有更好使的Gradle,但是Maven的地位也不会那么轻易被撼动,支持者还是多多. Ma ...
 - 简要介绍Active Learning(主动学习)思想框架,以及从IF(isolation forest)衍生出来的算法:FBIF(Feedback-Guided Anomaly Discovery)
			
1. 引言 本文所讨论的内容为笔者对外文文献的翻译,并加入了笔者自己的理解和总结,文中涉及到的原始外文论文和相关学习链接我会放在reference里,另外,推荐读者朋友购买 Stephen Boyd的 ...
 - java如何消除太多的if else判断?
			
1.简介 if判断语句是很多编程语言的重要组成部分.但是,若我们最终编写了大量嵌套的if语句,这将使得我们的代码更加复杂和难以维护. 让我们看看能否使用别的方式来做呢. 设计模式是为了更好的代码重用性 ...
 - css3贝塞尔曲线过渡动画速率——transition-timing-function:cubic-bezier(n,n,n,n)
			
css3过渡动画速率用到的是三阶贝塞尔曲线,曲线有四个点,p0,p1,p2,p3 有几个属性: linear 规定以相同速度开始至结束的过渡效果(等于 cubic-bezier(0,0,1,1)). ...
 - css+js实现自动伸缩导航栏
			
用css+js实现自动伸缩导航栏 需要达到的效果: 默认首页选中样式 设置鼠标滑过效果:颜色变化(#f60),宽度变化,字体变化 所涉及的知识点: 布局:float css: 元素状态切换(displ ...
 - JS的数组进行切片slice
			
代码 var arr = new Array(6) arr[0] = "George" arr[1] = "John" arr[2] = "Thoma ...
 - mysql 存储过程 函数 触发器
			
mysql存储过程与函数 存储过程下载 demo mysql> delimiter // -- 这里//为修改默认分隔符: mysql> CREATE PROCEDURE simplep ...
 - C++运算符重载学习总结
			
在C ++中,我们可以使运算符适用于用户定义的类. 这意味着C ++能够为运算符提供数据类型的特殊含义,这种能力称为运算符重载. 例如,我们可以在像String这样的类中重载运算符'+',这样我们就可 ...
 - vue多个路由使用同一个页面,通过name判断参数,渲染页面数据
			
项目中,发现有多个页面的数据内容相同,只是请求数据的参数不同,就可以使用同一个组件来渲染 这里的客户列表 / 我负责的 / 我参与的 都使用同一个组件,不同点在请求数据的参数 可以看到,通过钩子函数, ...
 - android studio学习---签名打包的两种方式
			
注:给我们自己开发的app签名,就代表着我自己的版权,以后要进行升级,也必须要使用相同的签名才行.签名就代表着自己的身份(即keystore),多个app可以使用同一个签名. 如果不知道签名是啥意思, ...