我正在使用kubernetes来部署应用程序,
x
查看日志。
重新部署很常见,所以有点不舒服 - 每次都要复制kubect logs
名称以粘贴日志命令(因为每次都会根据pod名称的末尾更改),例如以下是2次部署后相同应用程序的命令
pod
所以,我想使用一个命令,每当我们运行“kubectl logs -n=testns --since=1m testapp-2818008534-jx2vv
kubectl logs -n=testns --since=1m testapp-2818008534-xls93
”时,它将正确地“拾取”所需的POD名称。
但是喜欢
kubectl logs
返回一个错误,我们没有“给出”pod名称,但该pod肯定存在:
$kubectl logs -n=testns --since=1h $(kubectl get pods --namespace=testns | grep testapp)
那么,如何正确设置此命令,每次我们想查看日志时都使用它,而不需要重新复制完整的POD名称?
答案 0 :(得分:1)
当你这样做时:
kubectl get pods --namespace=testns | grep testapp
你会得到类似的东西:
testapp-54d99599bc-g2gs4 1/1 Running 0 56m
所以这不会很好地使用logs命令,因为它有一些Kubectl无法理解的额外数据。你能做的是:
kubectl get pods --namespace=testns | grep testapp | cut -d' ' -f1
只会生成POD的名称,然后你的日志命令才能生效。
答案 1 :(得分:0)
在大多数情况下,可接受的答案应该有效,但以防万一,请尝试以下替代方法:
kubectl get po | grep testapp | tr -s ' ' | cut -d\ -f 1