Сможете ли вы автоматически уничтожить развертывание стручка кубернетес? - PullRequest
0 голосов
/ 05 октября 2018

Я могу удалить развертывание с помощью kubectl cli, но есть ли способ заставить мое развертывание автоматически уничтожить себя после его завершения?В моей ситуации мы запускаем длительный процесс в контейнере Docker на AWS EKS.Когда я проверяю статус, он «работает», а затем через некоторое время статус «завершен».Так есть ли способ заставить модуль kubernetes автоматически уничтожить его, как только он будет завершен?

kubectl run some_deployment_name --image=path_to_image
kubectl get pods
  //the above command returns...
some_deployment_name1212-75bfdbb99b-vt622 0/1  Running 2  23s
  //and then some time later...
some_deployment_name1212-75bfdbb99b-vt622 0/1  Completed 2  15m

Когда он будет завершен, я бы хотел, чтобы он был уничтожен без необходимости вызова другой команды.

1 Ответ

0 голосов
/ 05 октября 2018

Таким образом, вопрос заключается в выполнении заданий, а не развертываний, как в Kubernetes Deployments абстракция, которая создает ReplicaSet , но больше похож на Kubernetes Jobs

A Job создается с kubectl run, когда вы указываете параметр --restart=OnFailure.Эти задания не очищаются кластером, если вы не удалите их вручную с помощью kubectl delete <pod-name>.Подробнее здесь .

Если вы используете Kubernetes 1.12 или более позднюю версию, была введена новая спецификация задания: ttlSecondsAfterFinished.Вы также можете использовать это для очистки вашей работы.Другим более трудоемким вариантом может быть написание собственного контроллера Kubernetes, который очищает обычные задания.

A CronJob создается, если указать оба параметра --restart=OnFailure и `--schedule =" ".Эти модули удаляются автоматически, потому что они работают по регулярному расписанию.

Подробнее о kubectl run здесь .

...