kubernetes - 通过 helm 部署 Kubernetes 作业
问题描述
我是新手,我尝试部署一些教程图表。有几个疑问:
我有一个需要部署的 Kubernetes 工作。是否可以通过 helm 部署工作?
此外,目前我的 kubernetes 作业是从我的自定义 docker 映像部署的,它运行一个 bash 脚本来完成该作业。我想向这个图表/作业传递一些参数,以便 bash 命令采用输入参数。这就是我决定转任掌舵的原因,因为它提供了更大的灵活性。那可能吗?
解决方案
您可以使用Helm Hooks
来运行作业。根据您设置注释的方式,您可以运行不同类型的挂钩(安装前、安装后、删除前、删除后、升级前、升级后、回滚前、回滚后、crd -安装)。文档中的一个示例如下:
apiVersion: batch/v1
kind: Job
metadata:
name: "{{.Release.Name}}"
labels:
app.kubernetes.io/managed-by: {{.Release.Service | quote }}
app.kubernetes.io/instance: {{.Release.Name | quote }}
helm.sh/chart: "{{.Chart.Name}}-{{.Chart.Version}}"
annotations:
# This is what defines this resource as a hook. Without this line, the
# job is considered part of the release.
"helm.sh/hook": post-install
"helm.sh/hook-weight": "-5"
"helm.sh/hook-delete-policy": hook-succeeded
spec:
template:
metadata:
name: "{{.Release.Name}}"
labels:
app.kubernetes.io/managed-by: {{.Release.Service | quote }}
app.kubernetes.io/instance: {{.Release.Name | quote }}
helm.sh/chart: "{{.Chart.Name}}-{{.Chart.Version}}"
spec:
restartPolicy: Never
containers:
- name: post-install-job
image: "alpine:3.3"
command: ["/bin/sleep","{{default "10" .Values.sleepyTime}}"]
您可以将参数作为secrets
或configMaps
传递给作业,就像传递给 pod 一样。
推荐阅读
- lldb - Hopper Disassembler v4,无法启动调试器。未找到 LLDB
- npm-install - 安装和使用“npm”的示例
- python - 无头浏览器无法在页面之间导航
- python - 如何用枕头调整图像大小?
- javascript - 如何使用 outerHTML 结果从 html 中查找元素?
- android - MotionLayout 不会使用 MotionScene 进行动画处理
- c++ -
: 没有这样的文件或目录 Windows 10 - c# - 使用 Acumatica REST API 发送电子邮件
- django - Django:未强制执行 UniqueConstraint
- autocomplete - 强制 Qt Creator 解析和索引 -inl.h 文件