具有持久卷的 cronjob 的 Helm 超时
Helm timeout for cronjob with a persistent volume
我在 AWS EKS 中有一个需要持久卷的 Kubernetes cron 作业,所以这大致是我所拥有的:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-{{$.Release.Name}}-tmp
spec:
accessModes:
- ReadWriteOnce
volumeMode: Filesystem
resources:
requests:
storage: 10Gi
然后挂载到cronjob(挂载部分正确,如下所示)
全部使用 Helm 部署,新部署超时,因为 PVC 保持 Pending
状态并显示消息 waiting for the first consumer to be created before binding
。如果在部署期间我基于 cron 作业创建了一个新作业,则 PVC 会立即绑定并且此部署和所有后续部署都按预期工作。
是否可以在没有需要它的 pod 的情况下“急切地”绑定 PVC,或者最好不要在图表安装期间等待它绑定?
您使用的存储空间 class 是多少?存储 class 具有 volumeBindingMode
控制如何动态创建 PV 的属性。
volumeBindingMode
可以是Immediate
和WaitForFirstConsumer
模式。
要检查存储 class,您可以 kubectl get storageclass
或 kubectl describe storageclass
。如果未在 K8 PVC 定义中指定,将使用默认存储 class。
参考文献:
我在 AWS EKS 中有一个需要持久卷的 Kubernetes cron 作业,所以这大致是我所拥有的:
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pvc-{{$.Release.Name}}-tmp
spec:
accessModes:
- ReadWriteOnce
volumeMode: Filesystem
resources:
requests:
storage: 10Gi
然后挂载到cronjob(挂载部分正确,如下所示)
全部使用 Helm 部署,新部署超时,因为 PVC 保持 Pending
状态并显示消息 waiting for the first consumer to be created before binding
。如果在部署期间我基于 cron 作业创建了一个新作业,则 PVC 会立即绑定并且此部署和所有后续部署都按预期工作。
是否可以在没有需要它的 pod 的情况下“急切地”绑定 PVC,或者最好不要在图表安装期间等待它绑定?
您使用的存储空间 class 是多少?存储 class 具有 volumeBindingMode
控制如何动态创建 PV 的属性。
volumeBindingMode
可以是Immediate
和WaitForFirstConsumer
模式。
要检查存储 class,您可以 kubectl get storageclass
或 kubectl describe storageclass
。如果未在 K8 PVC 定义中指定,将使用默认存储 class。
参考文献: