开发者社区> 问答> 正文

是否有可能,如果总是失败,如何限制kubernetes工作以创建最大数量的pod?

我们使用kubernetes工作来创建性能测试pod。根据文档,工作的一个优点是

创建一个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?

展开
收起
k8s小能手 2019-01-11 13:59:35 4179 0
1 条回答
写回答
取消 提交回答
  • 整合最优质的专家资源和技术资料,问答解疑

    根据您的kubernetes版本,您可以使用以下方法解决此问题:

    设置选项:restartPolicy: OnFailure,然后失败的容器将在同一个Pod中重新启动,因此你不会得到很多失败的Pod,而是你会得到一个有很多重启的Pod。

    从Kubernetes 1.8开始,有一个参数backoffLimit来控制失败作业的重启策略。此参数定义在将作业处理为失败之前作业的重试次数,默认为6次。要使此参数起作用,必须设置参数restartPolicy: Never。

    2019-07-17 23:25:19
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
ACK 云原生弹性方案—云原生时代的加速器 立即下载
ACK集群类型选择最佳实践 立即下载
企业运维之云原生和Kubernetes 实战 立即下载

相关镜像