kubernetes daemonset pod 被杀死后暂时终止

kubernetes daemonset pod 被杀死后暂时终止

我的 GKE 集群版本上运行着一个 Kubernetes Daemonset:

Server Version: version.Info{Major:"1", Minor:"9+", GitVersion:"v1.9.6-gke.1", GitCommit:"cb151369f60073317da686a6ce7de36abe2bda8d", GitTreeState:"clean", BuildDate:"2018-04-07T22:06:59Z", GoVersion:"go1.9.3b4", Compiler:"gc", Platform:"linux/amd64"}

当 Pod 被删除时,我的容器会正常处理发出的 SIGTERM 并关闭。Pod 中的两个容器都会立即报告以下内容:

State: Terminated Reason: Completed Exit Code: 0 Started: Tue, 22 May 2018 17:09:39 -0500 Finished: Tue, 22 May 2018 17:24:11 -0500 Ready: False

但是,吊舱在之后的约 30 秒内仍处于 状态Ready: 0/2Status: Terminating您知道为什么会发生这种情况或如何诊断吗?

答案1

默认宽限期为 30 秒。与任何默认值一样,它可能适合您的用例,也可能不适合。有两种方法可以更改宽限期:

1.在yaml文件中

例如,以下 .yaml 显示了一个简单的 DaemonSet 配置,具有 30 秒的终止宽限期

apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
.
.
.

terminationGracePeriodSeconds: 30

2.在命令行中,运行“kubeclt delete”

例如,

kubectl 删除 pod 名称 --grace-period=0

按照@Zied 的帖子强制删除。

答案2

如果我们专注于您描述的删除部分,我们可以参考kubectl delete帮助来弄清楚资源有grace-period

某些资源(例如 Pod)支持优雅删除。这些资源定义了强制终止前的默认期限(宽限期),但您可以使用 --grace-period 标志覆盖该值,或传递 --now 将宽限期设置为 1。

您可以尝试:

kubectl delete pod NAME --grace-period=0

相关内容