java 钩子 64位 操作系统_通过Helm钩子运行脚本

我已经为我的Helm图表编写了升级前和升级后挂钩,当我进行掌舵升级时会调用它 . 我的升级前挂钩应该将一些信息写入共享持久存储卷中的文件 . 不知何故,我没有看到这个文件被创建虽然我能够看到钩子被调用 .

这是我的升级前钩子的样子:

apiVersion: batch/v1

kind: Job

metadata:

name: "{{.Release.Name}}-preupgrade"

labels:

heritage: {{.Release.Service | quote }}

release: {{.Release.Name | quote }}

chart: "{{.Chart.Name}}-{{.Chart.Version}}"

annotations:

"helm.sh/hook": pre-upgrade

"helm.sh/hook-weight": "0"

"helm.sh/hook-delete-policy": hook-succeeded

spec:

template:

metadata:

name: "{{.Release.Name}}"

labels:

heritage: {{.Release.Service | quote }}

release: {{.Release.Name | quote }}

chart: "{{.Chart.Name}}-{{.Chart.Version}}"

spec:

restartPolicy: Never

containers:

- name: pre-upgrade-job

image: {{ .Values.registry }}/{{ .Values.imageRepo }}:{{ .Values.imageTag }}

imagePullPolicy: {{ .Values.imagePullPolicy }}

volumeMounts:

- mountPath: {{ .Values.pvc.shared_storage_path }}/{{ template "fullname" . }}

name: shared-pvc

command: ['/bin/sh -c scripts/preUpgradeScript.sh {{ .Values.pvc.shared_storage_path }}/{{ template "fullname" . }}']

volumes:

- name: shared-pvc

persistentVolumeClaim:

claimName: {{ template "fullname" . }}-shared-pv-claim

我的期望是钩子应该能够将信息写入已经在升级之前创建的PVC卷 . 当我对升级pod进行描述时,我可以看到以下错误:

Error: failed to start container "pre-upgrade-job": Error response from daemon: oci runtime error: container_linux.go:247: starting container process caused "exec: \"/bin/sh -c scripts/preUpgradeScript.sh /opt/flink/share/myfl-flink\": stat /bin/sh -c scripts/preUpgradeScript.sh /opt/flink/share/myfl-flink: no such file or directory"

在运行命令之前,挂钩是否首先挂载卷?另外,我用脚本图像打包脚本,所以我相信它应该在那里 . 当它进入失败状态时,我无法执行挂钩吊舱 . 谁能帮我这个?

[更新]我添加了一个sleep命令来进入pod并检查脚本是否可用以及挂载路径是否存在 . 一切都很好看 . 我不明白为什么会出现这个错误 .

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值