我们使用作业 ttlSecondsAfterDone
属性来自动清理已完成的作业。当我们的作业数量非常少(10-50 个)时,作业(及其 Pod)将在完成后大约 60 秒被清理。但是,现在我们的集群上运行了 ~5000 个作业,完成后需要 30 分钟才能清理 Job 对象。
这是一个问题,因为尽管作业就在那里,不消耗资源,但我们确实使用< code>ResourceQuota(选择器计数/jobs.batch)来控制我们的工作负载,并且那些已完成的作业占用了< code>ResourceQuota中的空间。
我知道,只有在TTL过去后,作业才会被标记为删除,并且不保证立即删除,但30分钟是一个非常长的时间。是什么导致了如此长的延迟?
我们的日志表明我们的 k8s API 服务器负载不高,并且 API 响应时间合理。
解决方案1
如何使用作业 ttlSecondsAfterDone
?您可以将 .spec.ttlSecondsAfterFinish
指定为所需的值。以下是官方文档中的示例
apiVersion: batch/v1
kind: Job
metadata:
name: pi-with-ttl
spec:
ttlSecondsAfterFinished: 100
template:
spec:
containers:
- name: pi
image: perl
command: ["perl", "-Mbignum=bpi", "-wle", "print bpi(2000)"]
restartPolicy: Never
请注意这一点:
请注意,作业的TTL期限,例如。spec.ttl秒后完成字段,可以在作业创建或完成后修改。但是,一旦作业有资格被删除(当TTL过期时),系统将不能保证作业将被保留,即使扩展TTL的更新返回成功的API响应。
更多信息:https://kubernetes . io/docs/concepts/workloads/controllers/ttlafterfinished/# updating-TTL-seconds
解决方案2
正如上面在注释字段中提到的,您可以尝试使用<code>kube控制器管理器</code>,并使用以下标志选项增加完成后允许并发同步的控制器工作线程的TTL数量:
kube控制器管理器--完成同步int32后并发ttl默认值:5
问题内容: 我需要将会话保留30分钟,然后销毁它。 问题答案: 您应该自己实现会话超时。其他人提到的两个选项_session.gc_maxlifetime_和_session.cookie_lifetime_都不可靠。我将解释其原因。 第一: session.gc_maxlifetime session.gc_maxlifetime 指定秒数,此后将数据视为“垃圾”并清除。垃圾收集在会话开始期间发
本文向大家介绍c#学习之30分钟学会XAML,包括了c#学习之30分钟学会XAML的使用技巧和注意事项,需要的朋友参考一下 1.狂妄的WPF 相对传统的Windows图形编程,需要做很多复杂的工作,引用许多不同的API。例如:WinForm(带控件表单)、GDI+(2D图形)、DirectX API(3D图形)以及流媒体和流文档等,都需要不同的API来构建应用程序。 WPF就是看着上面的操作复杂和
2面挂 题目: 1. 多线程:手写死锁 2. 手写SQL:公司是跨境电商,请设计三个表,统计每个品类的总销售额,就这些信息,自由发挥。 3. 项目问题:计算标签相似度使用了编辑距离算法,请问是如何考虑的,中国红和中国,国红,中红之间计算的相似度是多少。 总结:G! 1. 简单 2. 简历里面写了会写复杂sql,实际上很久没练习了,平常都是mybatis Plus 的分步写,已经忘记怎么写好sql了
我想从9:30到12点每两分钟运行一次cron作业。我该怎么做? 这是正确的吗?我应该在哪里加30?
1、实习都干了什么啊? 2、实习遇到最大的困难是什么啊?是怎么解决的? 3、平常是怎么学习的啊? 4、docker、k8s都用过吗? 5、都用什么联调啊? 6、网络和多线程会吗? 全程唠嗑,你看我还有机会吗? #2022秋招##研发工程师#
业务面第一次: 主要针对简历进行提问: 1.线程的创建方式? 2.集合都包括哪些数据结构? 3.AarryList和LinkedList的区别? 4.HashMap的put方法底层实现流程? 5.HashMap底层数据结构? 6.谈谈你对多态的理解? 7.Spring和SpringBoot的关系? 二者启动方式有和区别? 8.SpringBoot自动装配原理? 9.谈一谈你对Spring的AOP的