#kubernetes #jmap
#kubernetes #jmap
Вопрос:
Возможно ли запустить команду Linux против процесса, который выполняется внутри модуля kubernetes. Пример: я хочу получить кучу дампов в процессе Java, запущенном внутри модуля k8. Модуль поставляется с минимальной установкой и также не имеет такого большого дискового пространства, поэтому я хочу запустить команду jmap с локального компьютера (указывая на кластер k8). Спасибо.
Комментарии:
1. Вы пробовали использовать kubectl exec ?
Ответ №1:
Как я уже упоминал в комментариях, вы можете использовать команду kubectl exec:
Выполните команду в контейнере.
Использование:
$ kubectl exec (POD | TYPE/NAME) [-c CONTAINER] [flags] -- COMMAND [args...]
kubectl exec
Команда — это инструмент, который позволяет вам проверять и отлаживать ваши приложения, выполняя команды внутри ваших контейнеров.
Если вам нужны более подробные сведения и примеры о том, как его использовать, я рекомендую эти два руководства:
-
Получить оболочку для работающего контейнера: на этой странице показано, как использовать
kubectl exec
, чтобы получить оболочку для работающего контейнера.
Ответ №2:
kubectl exec
сделал это. Это позволяет запускать любую команду внутри контейнера. Например:
kc exec <POD_NAME> -- jmap -dump:live,format=b,file=heapdump.bin <pid>