《每天5分钟玩转 Kubernetes》11 Helm - 开发 chart

创建 chart

helm create mychart

自动创建目录 mychart,生成各类 chart 文件,以此为基础进行开发。

tree mychart

mychart/
├── charts
├── Chart.yaml
├── templates
│   ├── deployment.yaml
│   ├── _helpers.tpl
│   ├── ingress.yaml
│   ├── NOTES.txt
│   ├── service.yaml
│   └── tests
│       └── test-connection.yaml
└── values.yaml

调试 chart

helm 提供了 debug 工具:helm lint、helm install --dry-run --debug。

helm lint 会检查 chart 语法,报告错误,给出建议。

修改 mychart/values.yaml 模拟错误,例如删除 pullPolicy: IfNotPresent 中的 :,执行:

helm lint mychart/

// 返回
==> Linting mychart/
[INFO] Chart.yaml: icon is recommended
[ERROR] values.yaml: unable to parse YAML
    error converting YAML to JSON: yaml: line 11: could not find expected ':'

Error: 1 chart(s) linted, 1 chart(s) failed

给出了错误,修复后验证通过。

helm install --dry-run --debug 会执行模拟安装:

helm install --dry-run mychart --debug

会输出每个模板生成的YAML内容,我们根据这些内容判断是否与预期相符。

安装

有4中安装方式:

  1. 安装仓库中的 chart,helm install stable/nginx
  2. 通过 tar 包安装,helm install ./nginx-1.2.3.tgz
  3. 安装本地目录,helm install ./nginx
  4. 通过 url 安装,helm install https://xxx/nginx-1.2.3.tgz

示例(本地目录方式安装刚刚创建的 mychart):

helm install mychart

1. 启动一个 httpd 容器

任何 http server 都可以用作 chart 仓库,使用docker启动一个 httpd 容器:

docker run -d -p 8081:80 -v /var/www/:/usr/local/apache2/htdocs/ httpd

2. 将 mychart 打包

helm package mychart

会生成 mychart-0.1.0.tgz 包。

3. 生成仓库 index 文件

mkdir myrepo
mv mychart-0.1.0.tgz myrepo/
helm repo index myrepo/ --url http://192.168.3.107:8081/charts

ls myrepo
index.yaml  mychart-0.1.0.tgz

helm 会扫描 myrepo 目录中的所有 tgz 包并生成 index.yaml,--url 指定的是新仓库的地址。

4. 上传 index.yaml 与 mychart-0.1.0.tgz

index.yaml mychart-0.1.0.tgz 上传到 /var/www/charts 目录。

5. 将新仓库添加到 helm

helm repo add newrepo http://192.168.3.107:8081/charts

查看:

helm repo list
NAME    URL
stable  https://kubernetes-charts.storage.googleapis.com
local   http://127.0.0.1:8879/charts
newrepo http://192.168.3.107:8081/charts

现在就可以查询到 mychart 了:

helm search mychart
NAME            CHART VERSION   APP VERSION DESCRIPTION
local/mychart   0.1.0           1.0         A Helm chart for Kubernetes
newrepo/mychart 0.1.0           1.0         A Helm chart for Kubernetes

6. 直接从仓库安装 mychart

helm install newrepo/mychart

如果以后仓库中添加了新的 chart,需要使用 helm repo update 更新本地的 index,类似 ubuntu 的 apt-get update

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 225,641评论 6 525
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 96,754评论 3 408
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 173,075评论 0 370
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 61,369评论 1 303
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 70,386评论 6 402
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 53,800评论 1 317
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 42,122评论 3 431
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 41,130评论 0 281
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 47,689评论 1 327
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 39,693评论 3 348
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 41,804评论 1 356
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 37,399评论 5 351
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 43,128评论 3 341
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 33,528评论 0 25
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 34,705评论 1 278
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 50,409评论 3 383
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 46,878评论 2 368

推荐阅读更多精彩内容