问题描述
是否可以对在kubernetes pod中运行的进程运行linux命令。示例:我想在运行在k8 pod内的java进程上获取heapdumps。 Pod安装最少,并且没有足够的磁盘空间,因此我想从本地计算机运行jmap命令(指向k8集群)。谢谢。
解决方法
kubectl exec
做到了。它允许在容器内运行任何命令。例如:
kc exec <POD_NAME> -- jmap -dump:live,format=b,file=heapdump.bin <pid>
,
正如我在评论中已经提到的那样,您可以使用kubectl exec命令:
在容器中执行命令。
用法:
$ kubectl exec (POD | TYPE/NAME) [-c CONTAINER] [flags] -- COMMAND [args...]
kubectl exec
命令是一个工具,可通过在容器内执行命令来检查和调试应用程序。
如果您需要更多有关使用它的详细信息和示例,我建议您使用以下两个指南:
-
Get a Shell to a Running Container:此页面显示了如何使用
kubectl exec
将shell放入运行中的容器。