我有以下问题。我们需要实现一个删除 Kubernetes 命名空间的命令,但会有 1 小时的延迟。我尝试过这个,但它不起作用:
kubectl delete ns $NAMESPACE --grace-period=3600
您对如何做到这一点有什么想法或建议吗?
强制删除可能会对某些工作负载及其 Pod 造成潜在破坏。因此,我们有
grace-period
- Kubernetes 在强制删除资源之前等待的时间。默认情况下,它设置为 30 秒,但您可以使用此标志 --grace-period
指定它。删除进程从运行命令的那一刻开始。
出于您的目的,您可以使用 bash 脚本,或者,在我看来,这是更优雅的方式,Kubernetes Job
kube-job.yaml:
apiVersion: batch/v1
kind: Job
metadata:
name: delete-namespace-job
spec:
template:
spec:
containers:
- name: delete-namespace
image: bitnami/kubectl:latest
command: ["/bin/sh", "-c"]
args:
- |
sleep 3600;
kubectl delete ns $NAMESPACE;
env:
- name: NAMESPACE
value: "your-namespace"
restartPolicy: Never
backoffLimit: 4
然后应用它:
kubectl apply -f kube-job.yaml