这是我参与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 ,访问既可
这里默认直接安装chart中最新版本的nginx,那如何查看chart相关信息了
helm show chart bitnami/nginx
比较重要的是appVersion 指的是使用的nginx 版本,以及仓库地址和源地址,可以直接查看相关信息
既然已经安装了,就可以查看了 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的这个设计,完全把复杂的应用部署过程的包装好成一个成品了。直接交付就可以