helm之chartmuseum

时间:2021-12-16 23:35:19

1、概述

helm使得在k8s集群里面部署应用变得更简单,就像在linux系统里面使用yum安装软件一样,helm主要是利用的chart,首先看一下chart的结构:

# tree zipkin
zipkin
├── charts
├── Chart.yaml
├── templates
│   ├── deployment.yaml
│   ├── _helpers.tpl
│   ├── ingress.yaml
│   ├── NOTES.txt
│   └── service.yaml
└── values.yaml

charts: 是依赖的charts

Chart.yaml:是chart的版本和配置信息

templates:配置模版目录

deployment.yaml: k8s的deployment  project

ingress.yaml: ingress代理

service.yaml:kubernetes  service 定义文件

_helpers.tpl:用于修改kubernetes  object

NOTES.txt: helm 提示信息

values.yaml: 配置参数

如果采用网关做代理,可以去掉ingress.yaml。直接使用ambassador和kong来实现。

# tree zipkin
zipkin
├── charts
├── Chart.yaml
├── templates
│   ├── deployment.yaml
│   ├── _helpers.tpl
│   ├── NOTES.txt
│   └── service.yaml
└── values.yaml
# cat Chart.yaml
apiVersion: v1
appVersion: "1.0"
description: A Helm chart for Kubernetes
name: zipkin
version: 0.1.

当我们定义完chart后需要有个地方存储,就像docker的imag,存储到registry。

需要安装helm-push plugin,默认是没有安装的。

helm plugin install https://github.com/chartmuseum/helm-push

首先要部署一个这样的仓库去存储chart,就是本文要介绍的chartmuseum。

2、部署

就是一个二进制的可执行文件,linux系统安装:

curl -LO https://s3.amazonaws.com/chartmuseum/release/latest/bin/linux/amd64/chartmuseum

参考github:https://github.com/helm/chartmuseum

启动:

nohub chartmuseum --debug --port= --storage=local --storage-local-rootdir=/data/chartmuseum --basic-auth-user=hu --basic-auth-pass=hqhelm --cache=redis --cache-redis-addr=127.0.0.1: --cache-redis-db= >& &

使用本地存储,缓存到redis里面,所以需要提前准备好一个redis服务,并添加了用户密码认证。

3、使用

helm repo add  chartmuseum  http://127.0.0.1:8080 --username hu --password hqhelm --tiller-namespace tiller-world
helm plugin install https://github.com/chartmuseum/helm-push
helm  create  demo

修改完成以后,直接上传
helm push demo chartmuseum
helm  install -n demo  chartmuseum/demo   --tiller-namespace  tiller-world  --namespace default