首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何通过Linux Cron Job/Kubernetes cron job从k8s中删除被逐出的pod

通过Linux Cron Job/Kubernetes cron job从k8s中删除被逐出的pod,可以使用以下步骤:

  1. 创建一个脚本文件,用于删除被逐出的pod。可以使用任何你熟悉的编程语言编写脚本,比如Python、Shell等。以下是一个示例的Python脚本:
代码语言:txt
复制
import subprocess

def delete_evicted_pods():
    # 使用kubectl命令获取被逐出的pod列表
    cmd = "kubectl get pods --field-selector=status.phase=Failed -o json | jq '.items[] | select(.status.reason!=null) | .metadata.name'"
    process = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
    stdout, stderr = process.communicate()

    if process.returncode == 0:
        # 解析获取到的pod名称列表
        pod_names = stdout.decode().strip().split("\n")

        # 逐个删除被逐出的pod
        for pod_name in pod_names:
            delete_cmd = f"kubectl delete pod {pod_name}"
            subprocess.run(delete_cmd, shell=True)
    else:
        print("Failed to get evicted pods:", stderr.decode())

delete_evicted_pods()
  1. 将脚本文件保存为delete_evicted_pods.py
  2. 在Linux上设置一个Cron Job,定期执行该脚本。打开终端,输入以下命令进入Cron Job编辑模式:
代码语言:txt
复制
crontab -e
  1. 在编辑模式中,添加以下行来设置Cron Job,每小时执行一次脚本:
代码语言:txt
复制
0 * * * * python /path/to/delete_evicted_pods.py

确保将/path/to/delete_evicted_pods.py替换为实际脚本文件的路径。

  1. 保存并退出编辑模式。

现在,Linux Cron Job将每小时执行一次脚本,删除被逐出的pod。

对于Kubernetes cron job,可以使用以下步骤:

  1. 创建一个Cron Job的配置文件,比如delete-evicted-pods.yaml,内容如下:
代码语言:txt
复制
apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: delete-evicted-pods
spec:
  schedule: "0 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: delete-evicted-pods
            image: <your-image>
            command: ["python", "/path/to/delete_evicted_pods.py"]
          restartPolicy: OnFailure

确保将<your-image>替换为包含脚本文件的镜像名称。

  1. 使用kubectl命令创建Cron Job:
代码语言:txt
复制
kubectl apply -f delete-evicted-pods.yaml
  1. Kubernetes将根据配置文件中的计划任务定期创建一个Job来执行脚本。

这样,Kubernetes cron job将每小时执行一次脚本,删除被逐出的pod。

请注意,以上示例脚本和配置文件仅供参考,你需要根据实际情况进行调整和修改。另外,腾讯云提供了一系列与Kubernetes相关的产品和服务,你可以根据自己的需求选择适合的产品。具体产品介绍和链接地址请参考腾讯云官方文档。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【重识云原生】第六章容器基础6.4.8节——CronJob

1.1 介绍        CronJob控制器以Job控制器资源为其管控对象,并借助它管理pod资源对象,Job控制器定义作业任务在其控制器资源创建之后便会立即执行,但CronJob可以以类似于Linux...时区。         如果你控制平面在 Pod 或是裸容器运行了 kube-controller-manager, 那么为该容器所设置时区将会决定 Cron Job 控制器所使用时区。...它指定了如何处理 Cron Job 创建 Job 并发执行。...、pod一起被删除。 ...博客Kubernetes实战(八)-定时任务(Cronjob)_张志翔 ̮博客-CSDN博客Kubernetes K8S之资源控制器Job和CronJob详解 - 踏歌行666 - 博客园7.深入k8s

1.4K30
  • ASP.NET Core on K8S深入学习(3-2)DaemonSet与Job

    DaemonSet   在K8S,就有一些默认使用DaemonSet方式运行系统组件,比如我们可以通过下面一句命令查看: kubectl get daemonset --namespace=kube-system...Node节点上(这里是我K8S集群所有节点了),且每个节点上只有一个Pod副本。...二、Job 2.1 关于Job   对于ReplicaSet、Deployment、DaemonSet等类型控制器而言,它希望Pod保持预期数目并且持久运行下去,除非用户明确删除,否则这些对象一直存在...PS:这里用到了一个busybox镜像,busybox是一个软件工具箱,里边集成了Linux几百个常用Linux命令以及工具。...2.3 CronJob创建与运行   我们都知道在LinuxCron程序可以定时执行任务,而在K8S也提供了一个CronJob帮助我们实现定时任务。

    59410

    k8s实践(14)--scheduler调度器和pod调度策略

    二、Pod调度 在Kubernetes系统Pod在大部分场景下都只是容器载体而已,通常需要通过RC、Deployment、DaemonSet、Job等对象来完成Pod调度和自动控制功能。...,如果 Pod 正在运行,所在节点都被加入一个匹配 Taint,则这个 Pod 会持续在这个节点上存活 3600s 后逐出。...五、Job批处理调度 Kubernetes 1.2 版本开始支持批处理类型应用,我们可以通过 Kubernetes Job 资源对象来定义并启动一个批处理任务。...六、Cronjob:定时任务 Kubernetes 1.5 版本开始增加了一种新类型 Job,即类似 Linux Cron 定时任务 Cron Job,下 1、定义定时Cronjob。...其次,需要掌握 Cron Job 定时表达式,它基本上照搬了 Linux Cron 表达式,区别是第1位是分钟而不是秒, 格式如下: Minutes Hours DayofMonth Month DayofWeek

    2.4K32

    【云原生 | Kubernetes篇】Kubernetesk8s)工作负载(九)

    Job Kubernetes Job 对象将创建一个或多个 Pod,并确保指定数量 Pod 可以成功执行到进程正常结束: 当 Job 创建 Pod 执行成功并正常结束时,Job 将记录成功结束...#job超时以后 已经完成不删,正在运行Pod删除#单个Pod时,Pod成功运行,Job就结束了#如果Job定义了多个容器,则Job状态将根据所有容器执行状态来变化。...一个 CronJob 对象类似于 crontab (cron table) 文件一行记录。该对象根据 Cron 格式定义时间计划,周期性地创建 Job 对象。...垃圾收集器如何删除从属对象当删除某个对象时,可以指定该对象从属对象是否同时自动删除,这种操作叫做级联删除(cascading deletion)。...级联删除有两种模式:后台(background)和前台(foreground)如果删除对象时不删除自动删除其从属对象,此时,从属对象认为是孤儿(或孤立 orphaned)通过参数 --cascade

    79061

    etcd自动备份与恢复

    备份 kubernetes中部署应用信息都存放在etcd里面,这里面的数据非常重要,需要备份,以备不时之需。定时任务pod要和etcd在同一个node上面。...执行备份任务Job镜像对应etcd版本,需要和备份etcd版本一致,本方案也提供了etcd镜像制作方法。...执行备份任务Job通过调用entrypoint.sh来完成etcd备份,而entrypoint.sh脚本通过ConfigMap挂载到Job对应Pod。...如果需要支持其它存储方案,只需通过ConfigMap将实现存储对接entrypoint.sh脚本挂载到Job对应Pod即可。...通过volumeMounts将etcd证书信息映射到执行备份任务Job对应Pod目录。例如,本示例etcd证书位于/etc/kubernetes/pki/etcd目录下。

    3.6K50

    Kubernetes Job 与 CronJob

    ~]# cat /date/date.txt Sat Dec 22 16:09:48 UTC 2018 pod 重启策略 在 Job pod 重启策略 restartPolicy 不允许设置成...首先,Job Controller 控制直接就是 pod; 在整个 Job 作业过程Job Controller 根据实际在 Running pod 数、已成功退出 pod 数、parallelism...每个 pod 创建时,去队列里获取一个 task,完成后将其队列里删除,直到完成了定义 completions 数。.../job-wq-2 restartPolicy: OnFailure CronJob Kubernetes 在 v1.5 开始引入了 CronJob 对象,顾名思义,就是定时任务,类似 Linux...对象控制器,需要定义一个 Job 模板,即 jobTemplate 字段;另外,其定时表达式 schedule 基本上照搬了 Linux Cron 表达式: # ┌───────────── minute

    97820

    kubectl使用技巧

    # 一、使用kubectl查询、创建、编辑和删除资源 对于刚开始使用命令行工具开发者,最保险方法是提出问题(读取操作),而不是发出命令(写入操作),所以使用 get 命令开始是个不错选择。...Kubectl get 使用 get 命令可以获取当前集群可用资源列表,包括: Namespace Pod Node Deployment Service ReplicaSet 每个 get 命令都能提供集群可用资源详细信息...我们可以用 kubectl 在集群创建任何类型资源,包括: Service Cronjob Deployment Job Namespace(ns) 其中,一些资源创建需要设置配置文件、命名空间以及资源名称...虽然也可以通过命令行 standard in (STNIN) 来完成,但 apply 命令更好一些,因为它可以让你知道如何使用集群,以及要应用哪种配置文件。...Kubectl logs 虽然 describe 命令可以让你知道 Pod 内部应用程序发生事,但 logs 命令可以提供 Kubernetes Pod 更多详细信息。

    23410

    Kubernetes K8S之资源控制器Job和CronJob详解

    Pod成功完成后,Job将跟踪成功完成情况。当达到指定成功完成次数时,任务(即Job)就完成了。删除Job将清除其创建Pod。...一个简单情况是创建一个Job对象,以便可靠地运行一个Pod来完成。如果第一个Pod发生故障或被删除(例如,由于节点硬件故障或节点重启),则Job对象将启动一个新Pod。...Job对象在完成后也将保留下来,以便您查看其状态。 当我们删除Job对象时,对应pod也会被删除。...CronJob Cron Job 创建是基于时间调度 Jobs 一个 CronJob 对象就像 crontab (cron table) 文件一行。...相关阅读 1、Kubernetes K8S之资源控制器RC、RS、Deployment详解 2、Kubernetes K8S之资源控制器StatefulSets详解 3、Kubernetes K8S之资源控制器

    4.1K33

    关机了 cron job 怎么办,开机后还会再执行吗?

    为了解决这个问题,又一个辅助工具开发出来了——anacron, ana 是 anachronistic(时间错误) 缩写。anacron 通过文件时间戳来追踪任务上次运行时间。...apscheduler 几个概念: triggers,触发计算引擎,apscheduler 除了支持 cron 之外,还支持 date 和 interval 两种; job store,用于记录每次运行结果..., EVENT_JOB_EXECUTED | EVENT_JOB_ERROR) K8S cron jobkubernetes ,除了 deployment 以外,我们也可以构建一次性或者定时运行...cluster restartPolicy: OnFailure 在 K8S ,我们可以通过 .spec.concurrencyPolicy 来控制最多有多少个实例运行。...K8S 建议每个 cron job 最好是幂等,以免并发执行造成不可预料结果。

    1.5K20

    CronJob

    Kubernetes,CronJob是一种控制器对象,用于定期运行作业。类似于Linuxcron定时任务,它可以让用户指定一个cron表达式来定义作业运行频率。...什么是Kubernetes CronJob?CronJob是Kubernetes一个控制器对象,用于定期运行一组Pod。...更多Cron表达式可以参考Linuxcron表达式。CronJob对象工作流程当创建一个CronJob对象时,Kubernetes将在指定时间表达式下创建一个Job对象。...在CronJob对象,可以使用successfulJobsHistoryLimit和failedJobsHistoryLimit字段来指定保留成功和失败Job对象数量。...这些字段指定了Job对象历史记录最大数量,以及Kubernetes可以在将它们删除之前保留多少个成功或失败Job对象。

    42010

    关于 KubernetesJob&CronJob一些笔记

    写在前面 ---- 学习K8s涉及到这些,整理笔记加以记忆 博文内容涉及: job创建,参数解析,并行多workjob创建 cron job创建 Demo个别地方使用了ansible,不影响阅读...——烽火戏诸侯《剑来》 ---- Job&CronJob Job:批处理工作计划 Kubernetes1.2版本开始支持批处理类型应用,我们可以通过Kubernetes Job资源对象来定义并启动一个批处理任务...当数量达到指定成功个数阈值时,任务(即 Job)结束。删除 Job 操作会清除所创建全部 Pods。挂起 Job 操作会删除 Job 所有活跃 Pod,直到 Job 再次恢复执行。...所生成 pod 只能运行多久 Kubernetes1.5版本开始增加了一种新类型Job,即类似LinuxCron定时任务Cron Job,下面看看如何定义和使用这种类型Job首先,确保Kubernetes...etcd一些笔记 关于 KubernetesPod一些笔记

    53140

    k8s 实践经验(八)job && CronJob

    它主要用于描述Pod内容器重启策略。在Job只能将此属性设置为OnFailure或Never。...ttlSecondsAfterFinished 1.12版本之后,k8s提出了通过TTL自动删除Job特性,当前仅对job生效,对 Complete 和 Failed 状态Job都会自动删除,以后会逐步对所有的其他资源对象生效...Job pi-with-ttl ttlSecondsAfterFinished 值为 100,则,在其结束 100 秒之后,将可以自动删除 如果 ttlSecondsAfterFinished...而这个 Job 对象本身,则自动加上了这个 Label 对应 Selector,从而 保证了 Job 与它所管理 Pod 之间匹配关系。...CronJob(CJ) CronJob控制器以 Job控制器资源为其管控对象,并借助它管理pod资源对象,Job控制器定义作业任务在其控制器资源创建之后便会立即执行,但CronJob可以以类似于Linux

    71430

    K8s基础学习(思维导图)

    K8s基础学习(思维导图) 目录 1、简介 2、K8s基础知识 2.1、理论介绍 2.1.1、kubernetes名词解释 2.1.2、deploylment、rs、pod之间关系 2.2、基础操作...2.3、基本命令格式 2.4、软件包组成 3、K8s基础操作 1、简介 Kubernetes,简称K8s,是用8代替8个字符“ubernete”而成缩写。...官网地址: https://kubernetes.io/ 2、K8s基础知识 2.1、理论介绍 2.1.1、kubernetes名词解释 pod控制器类型: (1)HPA(Horizontal Pod...Autoscaler) (2)StatefulSet 为有状态服务,持久化储存,稳定网络,有序部署和删除 (3)daemonset 它有且只有一个pod负责创建 (4)job/cron job...2.1.2、deploylment、rs、pod之间关系 2.2、基础操作 2.3、基本命令格式 2.4、软件包组成 3、K8s基础操作 查看日志(通过2.3步已获取到pod名称和容器名称

    1.9K20
    领券