登录
首页 >  Golang >  Go问答

使用 DeletionGracePeriodSeconds 设置 Kubernetes POD 的删除期间不受尊重

来源:stackoverflow

时间:2024-02-17 08:27:20 155浏览 收藏

怎么入门Golang编程?需要学习哪些知识点?这是新手们刚接触编程时常见的问题;下面golang学习网就来给大家整理分享一些知识点,希望能够给初学者一些帮助。本篇文章就来介绍《使用 DeletionGracePeriodSeconds 设置 Kubernetes POD 的删除期间不受尊重》,涉及到,有需要的可以收藏一下

问题内容

我正在使用 golang 创建 kubernetes pod。我尝试设置 deletiongraceperiodseconds 但在创建 pod 后,该 pod 在此字段中有 30 个,而我设置为 25。 pod 的名称正确,因此在创建 pod 后,它具有我在代码中分配的名称。

func setupPod(client *Client, ns string, name string, labels map[string]string) (*v1.Pod, error) {
     seconds := func(i int64) *int64 { return &i }(25)
     pod := &v1.Pod{}
     pod.Name = name
     pod.Namespace = ns
     pod.SetDeletionGracePeriodSeconds(seconds) //it is 25 seconds under debugger
     pod.DeletionGracePeriodSeconds = seconds
     pod.Spec.Containers = []v1.Container{v1.Container{Name: "ubuntu", Image: "ubuntu", Command: []string{"sleep", "30"}}}
     pod.Spec.NodeName = "node1"
     if labels != nil {
        pod.Labels = labels
     }
     _, err := client.client.CoreV1().Pods(ns).Create(client.context, pod, metav1.CreateOptions{})
     return pod, err
}

解决方案


deletiongraceperiodseconds 是只读的,因此您无法更改它。您应该设置 terminationgraceperiodseconds 并且 kubernetes 将相应地设置 deletiongraceperiodseconds 。您可以通过获取值并打印它来验证这一点。

来自API docs

允许该对象正常终止的秒数 之前它将被从系统中删除。仅当设置 还设置了删除时间戳。可能只能缩短。 只读

podSpec := &v1.Pod{
        Spec: v1.PodSpec{
            TerminationGracePeriodSeconds: 
        },
    }

    _, err = clientset.CoreV1().Pods("namespacename").Create(context.TODO(), podSpec, metav1.CreateOptions{})

理论要掌握,实操不能落!以上关于《使用 DeletionGracePeriodSeconds 设置 Kubernetes POD 的删除期间不受尊重》的详细介绍,大家都掌握了吧!如果想要继续提升自己的能力,那么就来关注golang学习网公众号吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>