1 问题
能否不进入容器执行容器内部的命令
2 分析
执行Pod的命令,默认是用Pod中的第一个容器执行
通过bash获得Pod中某个容器的TTY,相当于登录容器
kubectl exec -it <pod-name> -c <container-name> bash
3 解决方法
kubectl exec -it -n <namespace> <pod_name> <your_command>
注意:
请将 <namespace>替换为pod所在的命名空间
请将 <pod_name> 替换为真实的pod名称
请将 <your_command> 替换为真实的需要在容器中执行的命令
4 验证
1) 执行容器中的shell命令
kubectl exec -it -n <namespace> <pod_name> date
输出结果:
Sat Mar 1 09:58:40 CST 2018
2) 执行容器中的python命令
进入到容器中,在/root下面新建hello.py,并填写如下内容
print "hello"
执行如下命令
kubectl exec -it -n <namespace> <pod_name> python /root/hello.py
输出结果:
hello
参考:
[1] https://www.jianshu.com/p/8710a3a0aadd
[2] https://www.cnblogs.com/shuaiandjun/p/9563296.html