我在Windows 10上,正在使用WSL。
我的命名空间中有8个pod:
NAME READY STATUS RESTARTS AGE
app-85b6fd4dc9-4chnq 1/1 Running 0 17m
app-85b6fd4dc9-9c5dc 1/1 Running 0 19m
app-85b6fd4dc9-cth6d 1/1 Running 0 19m
app-85b6fd4dc9-m8pc8 1/1 Running 0 19m
app-85b6fd4dc9-mrsnv 1/1 Running 0 18m
app-85b6fd4dc9-qtdtl 1/1 Running 0 17m
app-85b6fd4dc9-xzmdx 1/1 Running 0 17m
app-85b6fd4dc9-zbft7 1/1 Running 0 19m
我真的需要赶紧去看看原木。我目前的模式是:
kubectl get pods -n my_namespace
[copy NAME of the pod]
kubectl logs --follow pod_name -n my_namespace
# live tail logs here
我想跳过所有pod的显示,相反,我想直接转到第一个可用的或列表上的第一个,这是适用的。谢谢你回答我的问题
您可以在PowerShell中尝试以下操作,根据问题中提供的输出在PowerShell窗口10中进行测试。
$var = (kubectl get pods -n my_namespace | Select -First 2 | Select -Last 1 | %{ (-split $_)[0]) ; kubectl logs --follow $var -n my_namespace
我没有根据kubectl
验证它,但它应该可以工作,或者你可以在microsoft.powershell.utility 上查看更多详细信息
使用AWK 的Equelevent命令
export pod=$(kubectl get pods -n namespace | awk 'FNR==2{print $1}' ) | kubectl logs -f $pod -n mypod
使用kubectl
自动完成工具。
有很多可用的工具,你需要找到最适合你的。
- https://github.com/bonnefoa/kubectl-fzf
- https://github.com/evanlucas/fish-kubectl-completions
执行TAB
以显示可用选项:
$ kubectl logs -f -n kube-system [TAB]kubedb-enterprise-5cc89b87c5-k…
coredns-f9fd979d6-zcrmp (Pod)
coredns-f9fd979d6-zdr9c (Pod)
etcd-kind-control-plane (Pod)
kindnet-gvwcn (Pod)
…and 4 more rows