我需要通过选择吊舱的相应标签来检索吊舱列表。
当吊舱带有简单标签app=foo
,k8s-app=bar
时,选择非常简单:
kubectl get po -l 'app in (foo), k8s-app in (bar)'
包含特殊字符的标签会带来复杂性,例如: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)'
有什么主意如何将两个标签合并到一个查询中?
答案 0 :(得分:2)
当前,Kubernetes在标签选择器中不支持OR。您只能对同一标签的不同值进行“或”操作(例如kubectl get pods -l 'app in (foo,bar)'
)。
另请参阅How can the OR selector be used with labels in Kubernetes?
答案 1 :(得分:2)
您可以使用以下命令通过选择相应的标签来检索 pod 列表。
kubectl get pods --selector app=foo,k8s-app=bar