我是Kubernetes的新手,我正在运行时创建POD来推送数据,在推送和收集数据后,我正在删除POD。
对于文件的处理,我已经连接SSD。并将其路径指定为hostPath:/my-drive/example在创建POD时。现在当我运行我的POD时,我可以看到定义路径中的文件。
但是,现在我只是想删除文件创建的POD在hostPath目录中,同时删除POD。这可能吗?
我的POD文件看起来像。
apiVersion: v1
kind: Pod
metadata:
name: pod-example
labels:
app: pod-example
spec:
containers:
- name: pod-example
image: "myimage.com/abcd:latest"
imagePullPolicy: Always
workingDir: /pod-example
env:
volumeMounts:
- name: "my-drive"
mountPath: "/my-drive"
volumes:
- name: "my-drive"
persistentVolumeReclaimPolicy: Recycle
hostPath:
path: /my-drive/example
restartPolicy: Never
imagePullSecrets:
- name: regcred
affinity:
podAntiAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
- labelSelector:
matchExpressions:
- key: "kubernetes.io/hostname"
operator: In
values:
- my-node
topologyKey: "kubernetes.io/hostname"
2条答案
按热度按时间f1tvaqid1#
你可以通过在K8中使用
lifecycle
钩子来实现这一点。在它们下面,这里可以使用preStop
钩子,因为你需要在停止pod时执行操作。检查与生命周期挂接相关的文档:https://kubernetes.io/docs/concepts/containers/container-lifecycle-hooks/
如果你确切地知道要删除的文件或者目录,你可以使用
Exec
钩子处理程序。P.S.根据您的问题陈述,您似乎没有连续使用POD。如果您正在寻找的任务是定期执行或不连续执行,我建议您选择K8s
CronJob
或Job
,而不是POD
。请确保在容器内具有删除文件/文件夹所需的用户访问权限。5sxhfpxr2#
如下所示,将persistentVolumeReclaimPolicy更新为Delete