helm3 Chart

392 阅读3分钟

这是我参与8月更文挑战的第5天,活动详情查看:8月更文挑战

Chart介绍

前面一直说应用,其实在helm 里面叫作chart, 是kubernetes资源的文件集合,也是包格式名称

chart作为文件的集合,是可以被打包上传和分发的,接下来我们看如何使用chart

Chart操作

这里假设我们需要一个nginx,那么helm安装一个chart 非常简单,一条命令既可

也可以看有哪些仓库提供了nginx,选择其一个仓库安装也可以的

helm search repo nginx

这里我们选择bitnami的nginx,因为快

helm install bitnami/nginx --generate-name

可以看到已经安装了,并且如何访问的 也输出了,执行export 2个命令,得到2个全局变量,也就是ip和port ,访问既可 9.png

这里默认直接安装chart中最新版本的nginx,那如何查看chart相关信息了

helm show chart bitnami/nginx

比较重要的是appVersion 指的是使用的nginx 版本,以及仓库地址和源地址,可以直接查看相关信息 8.png

既然已经安装了,就可以查看了 helm 也有命名空间 的概念,并且也有隔离作用

helm list 
#查看所有命令空间的
helm list -A 

使用kubectl get pods 也可以看到启动了一个pod 而且是以deployment 控制器启动的

缺载也是一条命令既可,可以看得出来,,helm对于安装原生部署 应用方便快捷很多

chart名称 使用helm list 查看

helm uninstall chartName

chart文件结构

相理,我们使用原生的方式部署 的时候,假设使用deployment 方式部署nginx,并且可以使用IP:PORT访问,那么必须有一个deployment.yaml, service.yaml 和一个nginx镜像地址

我们使用helm 并没有看到,这是helm给我们做好了,但是了我们也可以下载下来看

helm pull bitnami/nginx

执行完成,会在执行命令的路径 下下载一个nginx-9.4.1.tgz 包,,我们解压看看

tar xf nginx-9.4.1.tgz
cd nginx
tree 

result: 其中 charts 目录下有tpl文件被隐去,不在此说节说明

nginx 
├── charts
├── Chart.yaml
├── ci
│   ├── ct-values.yaml
│   └── values-with-ingress-metrics-and-serverblock.yaml
├── README.md
├── templates
│   ├── deployment.yaml
│   ├── extra-list.yaml
│   ├── health-ingress.yaml
│   ├── _helpers.tpl
│   ├── hpa.yaml
│   ├── ingress.yaml
│   ├── ldap-daemon-secrets.yaml
│   ├── NOTES.txt
│   ├── pdb.yaml
│   ├── server-block-configmap.yaml
│   ├── serviceaccount.yaml
│   ├── servicemonitor.yaml
│   ├── svc.yaml
│   └── tls-secrets.yaml
├── values.schema.json
└── values.yaml

文件的作用如下:

  • Chart.yaml # 包含了chart信息的YAML文件
  • README.md # 可选: 可读的README文件
  • values.yaml # chart 默认的配置值
  • values.schema.json # 可选: 一个使用JSON结构的values.yaml文件
  • charts/ # 包含chart依赖的其他chart
  • crds/ # 自定义资源的定义
  • templates/ # 模板目录, 当和values 结合时,可生成有效的Kubernetes manifest文件
  • templates/NOTES.txt # 可选: 包含简要使用说明的纯文本文件

其中可看cat chart.yaml 就可以看到 这里面的内容其实和前面使用show命令查看的一致

helm show chart bitnami/nginx

总结

目前简单的使用,可以看出helm 这个工具非常方便,和便捷,其中chart的这个设计,完全把复杂的应用部署过程的包装好成一个成品了。直接交付就可以