【发布时间】:2019-05-28 18:31:09
【问题描述】:
作为我们公司的 QA,我是 Kubernetes 的日常用户,我们使用 Kubernetes 作业来创建性能测试 pod。根据docs,工作的一个优势是
创建一个 Job 对象以便可靠地运行一个 Pod 以完成
但是在我们的测试中,如果之前的失败,这个功能会创建无限的 Pod,这会占用我们团队共享集群的资源,删除这样的 Pod 会花费很多时间。看这张图片:
目前的工作清单是这样的:
{
"apiVersion": "batch/v1",
"kind": "Job",
"metadata": {
"name": "upgradeperf",
"namespace": "ntg6-grpc26-tts"
},
"spec": {
"template": {
"spec": {
"containers": [
{
"name": "upgradeperfjob",
"image":
"mycompany.com:5000/ncs-cd-qa/upgradeperf:0.1.1",
"command": [
"python",
"/jmeterwork/jmeter.py",
"-gu",
"git@gitlab-pri-eastus2.dev.mycompany.net:mobility-ncs-tools/tts-cdqa-tool.git",
"-gb",
"upgradeperf",
"-t",
"JMeter/testcases/ttssvc/JMeterTestPlan_ttssvc_cmpsize.jmx",
"-JtestDataFile",
"JMeter/testcases/ttssvc/testData/avaml_opus.csv",
"-JthreadNum",
"3",
"-JthreadLoopCount",
"1500",
"-JresultsFile",
"results_upgradeperf_cavaml_opus_t3_l1500.csv",
"-Jhost",
"mtl-blade32-03.mycompany.com",
"-Jport",
"28416"
]
}
],
"restartPolicy": "Never",
"imagePullSecrets": [
{
"name": "docker-registry-secret"
}
]
}
}
}
}
在某些情况下,例如错误配置 ip/ports,“可靠地运行一个 Pod 以完成”是不可能的,并且重新创建 Pod 是浪费时间和资源。 那么有可能吗?如果总是失败,如何限制 kubernetes 作业以创建最大数量(比如 3 个)的 pod?
【问题讨论】:
标签: kubernetes kubernetes-pod kubernetes-jobs