通过多个标签查询 Pod

Tom*_*ich 2 kubernetes

我需要通过选择相应的标签来检索 pod 列表。当 pod 有一个简单的标签app=foo, 时k8s-app=bar,选择就很容易了:

kubectl get po -l 'app in (foo), k8s-app in (bar)'
Run Code Online (Sandbox Code Playgroud)

复杂性来自包含特殊字符的标签,例如:app.kubernetes.io/name=foo 所以当我只查询这个标签时,我没有问题,但是如果我尝试将此标签添加到现有查询中,它将以返回no resources were found.

kubectl get po -l app.kubernetes.io/name=foo,app=bar
kubectl get po -l 'app.kubernetes.io/name in (foo), app in (bar)'
Run Code Online (Sandbox Code Playgroud)

知道如何在单个查询中加入两个标签吗?

小智 24

您可以使用以下命令通过选择相应的标签来检索 pod 列表。

kubectl get pods --selector app=foo,k8s-app=bar
Run Code Online (Sandbox Code Playgroud)


koe*_*koe 7

目前,Kubernetes 不支持标签选择器中的 OR。您只能 OR 同一标签的不同值(如kubectl get pods -l 'app in (foo,bar)')。

另请参阅如何将 OR 选择器与 Kubernetes 中的标签一起使用?