Фон
У меня есть большая служба Python, которая работает на настольном ПК, и мне нужно, чтобы она работала как часть развертывания K8S. Я ожидаю, что мне придется внести несколько небольших изменений, чтобы служба работала в развертывании / модуле, прежде чем она заработает.
Проблема
Пока, если я сталкиваюсь с проблемой в коде Python, требуется некоторое время, чтобы обновить код и развернуть его для следующего раунда тестирования. Например, я должен:
- Изменить мой код Python.
- Перестройте контейнер Docker (который включает в себя мой сервис Python).
scp
контейнер Docker на сервер реестра Docker.
docker load
изображение, обновите теги и отправьте его в фоновую базу данных реестра.
- Вручную убейте работающие в данный момент модули, чтобы при развертывании все модули были перезапущены с новым образом Docker.
Это требует много времени каждый раз, когда мне нужно отладить небольшую проблему. В идеале я предпочитаю иметь возможность просто изменить копию моего кода Python, уже запущенного на модуле, но я не могу его убить (поскольку служба Python является приложением по умолчанию, которое запускается с PID=1
), и K8S не поддерживает перезапуск модуля (насколько мне известно). С другой стороны, если я убиваю / запускаю другой модуль, он не будет иметь моих локальных изменений по сравнению с модулем, над которым я ранее работал (который, конечно, разработан, но не помогает в моих усилиях по отладке).
Вопрос
Есть ли лучший / более быстрый способ быстрого развертывания (экспериментального / отладочного) изменений в тестируемом контейнере без необходимости тратить несколько минут на воссоздание образов контейнеров, повторное развертывание / тегирование / отправка их и т. Д.? Если бы я мог найти и смонтировать (прочитать-написать) образ Docker, это могло бы помочь, так как я мог бы редактировать данные внутри него напрямую (то есть, новые изменения в Python) и просто убивать модули, чтобы их воссоздание воссоздали.