Возможно ли это, и как ограничить работу kubernetes, чтобы создать максимальное количество стручков, если всегда не удается? - PullRequest
0 голосов
/ 02 января 2019

Являясь QA в нашей компании, я ежедневно пользуюсь kubernetes, и мы используем работу kubernetes для создания модулей тестирования производительности.Согласно документам , одним из преимуществ задания является

для создания одного объекта задания для надежного запуска одного модуля Pod до завершения

Нов наших тестах эта функция будет создавать бесконечные модули, если предыдущие не пройдут, что займет ресурсы общего кластера нашей команды, и удаление таких модулей займет много времени.см. это изображение: enter image description here

В настоящее время манифест задания выглядит следующим образом:

   {
  "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, надежнозапустить один модуль до завершения »невозможно, а воссоздание модулей - пустая трата времени и ресурсов.Так возможно ли и как ограничить работу kubernetes для создания максимального числа (скажем, 3) стручков, если всегда происходит сбой?

Ответы [ 2 ]

0 голосов
/ 02 января 2019

В зависимости от вашей версии kubernetes, вы можете решить эту проблему следующими способами:

  1. установите параметр: restartPolicy: OnFailure, после чего сбойный контейнер будет перезапущен в том же модуле,так что вы не получите много неисправных модулей, вместо этого вы получите модуль с большим количеством перезапусков.

  2. Начиная с версии Kubernetes 1.8, есть параметр backoffLimit для управления политикой перезапуска.неудавшейся работы.Этот параметр определяет время повторения задания перед обработкой задания, которое не удалось, по умолчанию 6 раз.Для работы этого параметра необходимо установить параметр restartPolicy: Never.

0 голосов
/ 02 января 2019

Вы, вероятно, не установили restartPolicy: Never в своей спецификации pod, добавьте это, и я ожидаю, что она лучше соответствует вашему ожидаемому поведению.

...