通过使用kubectl exec -ti POD_NAME bash
,我可以访问容器内的命令行并执行命令。
我可以很容易的理解exec
命令的实用性和便利性。作为K8s管理员,我也经常使用exec。
然而,kubectl attach POD_NAME
的使用情况是什么?
如何才能利用?
它的真正目的是什么?
在什么情况下使用它最好?
通过使用kubectl exec -ti POD_NAME bash
,我可以访问容器内的命令行并执行命令。
我可以很容易的理解exec
命令的实用性和便利性。作为K8s管理员,我也经常使用exec。
然而,kubectl attach POD_NAME
的使用情况是什么?
如何才能利用?
它的真正目的是什么?
在什么情况下使用它最好?
它可以附加到容器所运行的主进程上,而这个主进程并不总是bash。
与exec相反,它允许你在容器中执行任何进程(通常是:bash)。
# 从运行的 pod 123456-7890 获取输出,默认使用第一个容器 kubectl attach 123456-7890 # 从 pod 123456-7890 获取 ruby-container 的输出 kubectl attach 123456-7890 -c ruby-container
官方文档:
$> kubectl attach redis -i
同样,主要区别在于您在容器中与之交互的过程:
你的答案