通过使用kubectl exec -ti POD_NAME bash我能够访问容器内的终端并执行命令.
我可以理解上述命令的可用性和方便性.作为K8s运营商,我经常使用exec.
但是,用例是kubectl attach POD_NAME什么?
怎么用呢?它的真正目的是什么?在什么情况或情况下它可以使用?
Von*_*onC 28
kubectl附着的用例在kubernetes/issue 23335中讨论.
它可以附加到由容器运行的主进程,而不是总是bash.
与exec相反,它允许您在容器内执行任何进程(通常:bash)
# Get output from running pod 123456-7890, using the first container by default
kubectl attach 123456-7890
# Get output from ruby-container from pod 123456-7890
kubectl attach 123456-7890 -c ruby-container
Run Code Online (Sandbox Code Playgroud)
本文提出:
除了交互式执行命令外,您现在还可以附加到任何正在运行的进程.比如
kubectl logs,你将获得stderr和stdout数据,但是使用attach,你也可以将stdin从你的终端发送到程序.
很棒的交互式调试,甚至只是发送ctrl- c行为不端的应用程序.
$> kubectl attach redis -i
Run Code Online (Sandbox Code Playgroud)
同样,主要区别在于您在容器中与之交互的过程:
| 归档时间: |
|
| 查看次数: |
8488 次 |
| 最近记录: |