Eri*_*han 7 go kubernetes client-go
我尝试通过client-go使用 LabelSelector 删除我的作业:
cli.BatchV1().Jobs("default").Delete(context.TODO(), name, metav1.DeleteOptions{})
Run Code Online (Sandbox Code Playgroud)
作业已成功删除,但其 pod 却没有删除!
如果我通过 删除这个作业kubectl,它创建的 pod 也会被自动删除。
我如何简单地删除带有 pod 的作业client-go?
小智 1
您需要将该PropagationPolicy字段设置DeleteOptions为Background。这可确保删除 Job 及其子 Pod。
import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
//...
backgroundDeletion := metav1.DeletePropagationBackground
err := cli.BatchV1()
.Jobs("default")
.Delete(context.TODO(), name, metav1.DeleteOptions{
PropagationPolicy: &backgroundDeletion,
})
Run Code Online (Sandbox Code Playgroud)