文章目录
使用Helm在OpenShift上部署应用
前言
在OpenShift上导出应用YAML配置并重新部署应用 一文中描述了如何从OpenShift中导出YAML文件,并重新部署。本文接着介绍,如何根据OpenShift的导出YAML文件来准备Helm chart,并用Helm在OpenShift上部署应用。
使用Helm部署应用的优点包括:
- 集中管理配置文件中经常变化的部分
- 可以在安装或升级时指定运行参数
- 复杂的依赖管理(本文不涉及)
本文的Helm chart代码示例:
安装Helm
Helm 3只需要安装helm
客户端命令工具。
在Mac OS上:
brew install helm
参见:
创建Helm chart
创建一个名为spring-db-demo-deployment
的新目录。
在该目录下创建spring-db-demo
的Helm chart:
helm create spring-db-demo
Helm chart目录结构
spring-db-demo
的Helm chart目录结构为:
spring-db-demo
├── Chart.yaml
├── charts
├── templates
│ ├── NOTES.txt
│ ├── _helpers.tpl
│ ├── deployment.yaml
│ ├── hpa.yaml
│ ├── ingress.yaml
│ ├── service.yaml
│ ├── serviceaccount.yaml
│ └── tests
│ └── test-connection.yaml
└── values.yaml
说明:
spring-db-demo
Chart的名称和目录名同名Chart.yaml
Chart信息配置文件values.yaml
实例化时用来替换模板文件中的占位符的值templates/
Kuberentes YAML模板文件目录*.yaml
Kubernetes YAML模板文件_helpers.tpl
子模板,定义函数NOTES.txt
release notes, 运行helm install
时的帮助说明
charts/
Chart所依赖的上游Chart目录
参见:
准备Helm template文件
删除templates/
目录下的所有内容,除了_helpers.tpl
。
参考在OpenShift上导出应用YAML配置并重新部署应用 ,将从OpenShift上导出的YAML文件复制到templates/
目录。
在_helpers.tpl
中编写函数
在_helpers.tpl
中编写公共函数,用来替换YAML文件中的metadata.labels
和selector
。
metadata.labels
metadata.labels
内容:
app: spring-db-demo
app.kubernetes.io/component: spring-db