👁 Часто бывает нужно запускать временные контейнеры внутри Kubernetes для выполнения каких-либо задач, например, для временной обработки данных, выполнения миграций или использования образа для тестирования. Вместо того, чтобы создавать и уничтожать эти контейнеры вручную, можно автоматизировать процесс с помощью Kubernetes.
📝 Один из удобных способов решения этой задачи — использовать Kubernetes Jobs с контейнерами. Пример, который будет выполнять команду внутри контейнера на основе Docker-образа:
apiVersion: batch/v1
kind: Job
metadata:
name: temp-job
spec:
template:
spec:
containers:
- name: temp-container
image: python:3.9
command: ["python", "-c", "print('Hello from a temporary container!')"]
restartPolicy: Never
backoffLimit: 4📌 Важные моменты:
- —
commandзапускает Python в контейнере для выполнения простой команды - —
restartPolicy: Neverгарантирует, что контейнер не будет перезапущен после завершения работы - —
backoffLimit: 4определяет, сколько раз Kubernetes будет пытаться перезапустить контейнер, если задача не удалась (например, из-за ошибок)
🔎 Это идеальный способ для выполнения одноразовых задач, таких как миграции, очистка данных или тесты, которые должны завершиться и не оставлять за собой мусор.
❗️ Такой подход позволяет интегрировать временные задачи в существующий CI/CD pipeline без лишних сложностей и вмешательства в основную инфраструктуру.
tags: #docker #k8s #devops
❤️ @recura_tech



