Возьмём стандартную нотацию команды:

kubectl -n some_namespace exec some_pod_replica [-it] -- {command}

Что, имхо, неудобно в вызове:

  1. Если это не дефолтное пространство имён, нужно явно его указывать. Кажется, что текущий контекст кубконфига не должен решать эту проблему и устанавливать определённый этим самым контекстом неймспейс по умолчанию. Писать флаг бывает геморройно, особенно при авральном решении задач;
  2. Под, по своей сути, это экземпляр сервиса (читай, развёртывания), и его было бы удобно вызывать по общему имени. Интересно, в каком мире люди посчитали удобным делать сначала листинг, а потом копипастить название конкретного пода в вызове exec. Есть же формат как в Docker Compose (ниже).
docker compose exec [-flags] some_service {command}

Можно навесить флаги. Компоуз закинет человека за терминалом в корректный сервис (часто реплика не так важна) — и пожалуйста, работаем! А так получается, будто разработчики K8s Control решили, что модель вызова, как в базовом Docker идеально удобна…

Колофон

Эти претензии могут быть, в целом, беспочвенны, так как многое зависит от конфигурации кластера. Возможно, появится мысль, что делать «упражнения» на подах в проде — полный пизантипаттерн, и надо было закладывать такие возможности через API или другие интерфейсы на этапе разработки. И с этим определённо можно согласиться. Однако, всё это не отменяет факта неудобства работы с командой утилиты и её интерфейсом.