Kubernetes Pod очень скоро меняет статус с запущенного на завершенный, как мне предотвратить это

Создал модуль, используя yaml, и после создания модуля я запускаю kubectl exec для запуска моего тестового кода Gatling perf.

kubectl exec gradlecommandfromcommandline -- ./gradlew gatlingRun- 
simulations.RuntimeParameters -DUSERS=500 -DRAMP_DURATION=5 -DDURATION=30

но это заканчивается на консоли kubectl сообщением ниже: -

команда завершена с кодом выхода 137

При расследовании было обнаружено, что модуль меняет статус с запущенного на завершенный этап.

Как увеличить срок службы модуля, чтобы он ждал выполнения моей команды. Вот модуль yaml

apiVersion: v1
kind: Pod
metadata:
  name: gradlecommandfromcommandline
labels:
  purpose: gradlecommandfromcommandline
spec:
  containers:
    - name: gradlecommandfromcommandline
      image: tarunkumard/tarungatlingscript:v1.0
      workingDir: /opt/gatling-fundamentals/
      command: ["./gradlew"]
      args: ["gatlingRun-simulations.RuntimeParameters", "-DUSERS=500", "- 
DRAMP_DURATION=5", "-DDURATION=30"]
  restartPolicy: OnFailure

person Margaret real    schedule 13.12.2018    source источник
comment
Можете ли вы добавить подробности о том, что делает этот модуль и почему он так быстро завершается или чего вы пытаетесь достичь? Возможно, у вас будет больше шансов запустить скрипт внутри модуля, а не делать это как kubectl exec. ..   -  person fatcook    schedule 13.12.2018
comment
вы можете заставить модуль работать непрерывно посмотрите здесь, затем выполните его в модуле, проверьте, что происходит с вашей командой - запустите его вручную   -  person sanster_23    schedule 13.12.2018
comment
Спасибо @sanster_23, ваше решение сработало, также спасибо fatcook за ответ   -  person Margaret real    schedule 13.12.2018


Ответы (1)


Вот файл yaml, чтобы модуль всегда работал apiVersion: v1

kind: Pod
metadata:
name: gradlecommandfromcommandline
labels:
purpose: gradlecommandfromcommandline
spec:
volumes:
- name: docker-sock
  hostPath:
    path: /home/vagrant/k8s/pods/gatling/user-files/simulations    # A file or 
directory location on the node that you want to mount into the Pod
  #  command: [ "git clone https://github.com/TarunKDas2k18/PerfGatl.git" ]
containers:
- name: gradlecommandfromcommandline
  image: tarunkumard/tarungatlingscript:v1.0
  workingDir: /opt/gatling-fundamentals/
  command: ["./gradlew"]
  args: ["gatlingRun-simulations.RuntimeParameters", "-DUSERS=500", "- 
 DRAMP_DURATION=5", "-DDURATION=30"]

- name: gatlingperftool
  image: tarunkumard/gatling:FirstScript     # Run the ubuntu 16.04
  command: [ "/bin/bash", "-c", "--" ]       # You need to run some task inside a 
  container to keep it running
  args: [ "while true; do sleep 10; done;" ] # Our simple program just sleeps inside 
  an infinite loop
  volumeMounts:
    - mountPath: /opt/gatling/user-files/simulations     # The mount path within the 
  container
      name: docker-sock                   # Name must match the hostPath volume name
  ports:
    - containerPort: 80
person Margaret real    schedule 13.12.2018