Kubernetes - это инструмент, предназначенный для запуска нескольких копий упакованного приложения Somewhere Else. Он не предназначен для разработки в режиме реального времени.
Представьте, что вы создали настольное приложение, каким-то образом упаковали его и отправили мне. Я запускаю его на своем рабочем столе (Somewhere Else) и у меня проблема с ним. Я могу сообщить вам об этой проблеме, но вы не сможете подключить свою IDE к моей настольной системе. Вместо этого вам нужно воспроизвести мою проблему в вашей собственной системе разработки, написать тестовый пример и исправить ее; как только вы это сделаете, вы можете выпустить обновление, которое я смогу запустить снова.
Kubernetes гораздо больше сосредоточен на этой модели «запускаемого программного обеспечения», чем на среде разработки. Вы можете легко откатить объект Deployment обратно к предыдущей версии программного обеспечения, которая была выпущена, например, при условии, что у вас есть схема для маркировки различных выпусков. Однако вам нужно много взломать, чтобы попытаться запустить локальное дерево разработки внутри контейнера.
Другим важным следствием этого является то, что когда вы "присоединяете свою IDE к Docker контейнер ", вы не запускаете код в вашем изображении! Типичная настройка для этого запускает контейнер Docker из образа, но затем перезаписывает весь код приложения (через привязку) любым содержимым вашей локальной системы. Помимо, возможно, инкапсулирования некоторых трудно устанавливаемых зависимостей, этот подход, с одной стороны, вообще не позволяет использовать Docker (должен иметь root -эквивалентные разрешения, не может локально запускать инструменты поддержки, ...) а с другой стороны, это скрывает код в образе (поэтому вам нужно будет повторять любые тесты, когда вы хотите развернуть в рабочей среде).
Я бы рекомендовал использовать локальную среду разработки для локальной разработки, и не пытаясь смоделировать это с помощью других инструментов. Kubernetes совсем не подходит для живой разработки, и я бы не стал включать ее в ваш повседневный рабочий процесс, кроме тестирования перед развертыванием после прохождения других тестов.