如何通过部分名称访问kubernetes吊舱?

如何通过部分名称访问kubernetes吊舱?,kubernetes,kubectl,Kubernetes,Kubectl,我经常执行以下任务: 阅读服务日志X 或 在服务Y 我总是在我的历史中使用一些东西,比如: kubectl logs `kubectl get pods --no-headers -o custom-columns=":metadata.name" | grep <partial_name>` kubectl日志`kubectl get pods--no headers-o custom columns=“:metadata.name”| grep` 或 kubectl ex

我经常执行以下任务:

  • 阅读服务日志
    X
  • 在服务
    Y
我总是在我的历史中使用一些东西,比如:

kubectl logs `kubectl get pods --no-headers -o custom-columns=":metadata.name" | grep <partial_name>`
kubectl日志`kubectl get pods--no headers-o custom columns=“:metadata.name”| grep`

kubectl exec-it`kubectl get pods--no headers-o custom columns=“:metadata.name”| grep`bash

你知道kubectl是否已经为此准备好了什么吗?还是我应该创建自己的别名集?

Kubernetes实例通过标签(键值对)松散耦合。因此,Kubernetes提供了各种功能,可以帮助您基于标签对对象集进行操作

如果您有多个相同服务的pod,很可能它们是由某个replicset使用特定标签管理的。如果您运行以下命令,您应该会看到它:

kubectl get pods --show-labels
现在,对于聚合日志,例如,您可以使用标签选择器,如:

kubectl logs -l key=value

有关更多信息,请参阅:。

您可以启用shell自动完成。Kubectl为Bash和Zsh提供了这种支持,这将为您节省大量的输入(您将使用TAB获得建议/完成)


Kuberentes documentations提供了大量关于如何在以下情况下启用自动完成的信息。它涵盖了Linux上的Bash、MacOS上的Bash和Zsh。

因此,
kubectl
没有这样的东西,我个人使用
| grep
这是对结果进行过滤的Bash命令。和所有bash的东西一起做。虽然如果您使用zsh,这里有一个插件可能对您有用:如果您对标签中的所有pod都满意,那么您可以使用标签<代码>kubectl日志-l name=myLabel
kubectl logs -l key=value