延迟删除 Kubernetes 命名空间

问题描述 投票:0回答:1

我有以下问题。我们需要实现一个删除 Kubernetes 命名空间的命令,但会有 1 小时的延迟。我尝试过这个,但它不起作用:

kubectl delete ns $NAMESPACE --grace-period=3600

您对如何做到这一点有什么想法或建议吗?

kubernetes namespaces kubectl
1个回答
0
投票

强制删除可能会对某些工作负载及其 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
© www.soinside.com 2019 - 2024. All rights reserved.