kubectl exec 允许你直接在作为 Kubernetes Pod 一部分的容器内运行命令。这对调试和管理 Pod 中运行的应用程序特别有用。


下面的示例演示了如何使用 kubectl exec 在 Pod 的特定容器内执行命令。

【代码清单】

# Execute the 'ls' command inside the 'my-container' of 'my-pod'
kubectl exec my-pod -c my-container -- ls /app

【执行结果】

file1.txt
file2.txt
directory1

运行上述命令时,kubectl 会连接 Kubernetes API 服务器,并发送请求在 Pod(my-pod)的指定容器(my-container)中执行 ls /app 命令。-- 表示命令选项的结束,允许你传递要执行的命令。输出会显示容器内 /app 目录的内容。

该命令尤其适用于检查文件状态、验证配置或调试容器内的问题。您可以用任何想要运行的命令(如 cat、curl 或任何特定于应用程序的命令)替换 ls /app。

【小知识】

kubectl exec 还可用于在容器内启动交互式 shell 会话。例如,使用 kubectl exec -it my-pod -c my-container -- /bin/bash 就能与容器交互,就像直接登录到容器中一样。

你可以省略 -c 选项,在 Pod 的所有容器中执行命令,但指定容器是避免歧义的好方法。