如何移除Kubernetes'Shutdown;Pod [英] How to remove Kubernetes 'shutdown' pods

查看:5
本文介绍了如何移除Kubernetes'Shutdown;Pod的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我最近注意到大量Pod堆积,状态为‘Shutdown’。我们从2020年10月开始使用Kubernetes。

生产和暂存在相同的节点上运行,只是暂存使用可预占的节点来降低成本。集装箱在装运过程中也很稳定。(故障很少发生,因为它们以前在测试中被捕获)。

服务提供商Google Cloud Kubernetes。

我熟悉了这些文档,并尝试搜索,但我都没有意识到谷歌对这一特定状态都没有帮助。日志中没有错误。

我没有遇到阻止Pod的问题。理想情况下,我希望K8自动删除这些关机吊舱。如果我运行kubectl delete po redis-7b86cdccf9-zl6k9,它会瞬间消失。

kubectl get pods | grep Shutdown | awk '{print $1}' | xargs kubectl delete pod是手动临时解决方法。

PS。k是我的环境中kubectl的别名。

最后一个例子:它发生在所有名称空间//不同的容器中。

我偶然发现了几个解释现状的相关问题 https://github.com/kubernetes/website/pull/28235 https://github.com/kubernetes/kubernetes/issues/102820

当Pod在正常节点关闭期间被逐出时,它们被标记为失败。运行kubectl get pods会将被逐出的Pod的状态显示为Shutdown。&Quot;

推荐答案

被驱逐的Pod不是故意移走的,正如K8S团队在这里所说的1,被驱逐的Pod也不会被移除,以便在驱逐后进行检查。

我认为在这里最好的方法是创建一个cronjob2,如前所述。

apiVersion: batch/v1
kind: CronJob
metadata:
  name: del-shutdown-pods
spec:
  schedule: "* 12 * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: hello
            image: busybox
            imagePullPolicy: IfNotPresent
            command:
            - /bin/sh
            - -c
            - kubectl get pods | grep Shutdown | awk '{print $1}' | xargs kubectl delete pod
          restartPolicy: OnFailure

这篇关于如何移除Kubernetes'Shutdown;Pod的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆