如何使用带有标志 --selector 的 kubectl 命令?

问题描述 投票:0回答:3

我对带有标志 --selector 的 kubectl 命令有疑问。在帮助菜单中它说,

-l, --selector="": Selector (label query) to filter on

然而它并没有像我想象的那样工作, 例如,我想要 RC 拥有像这样的选择器

    "spec": {
    "replicas": 2,
    "selector": {
        "app": "tas-core"
    },

当我发出命令时

kubectl get pod --selector="app:tas-core"

系统报告:提供的选择器“app:tas-core”无效:无法解析要求:标签键:值“app:tas-core”无效,详细信息:必须匹配正则表达式 [a-z0-9?(。 a-z0-9?)* / ] a-z0-9?

在我检查正则表达式之后

[[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)* / ] [a-z0-9]([-a-z0-9]*[a-z0-9])?

我仍然找不到任何可以通过正则表达式的字符串! 我给了,

kubectl get rc -l app/tas-core

什么也没退回。 我该如何使用它?

我还有一个问题,如何过滤所有带有类似标签的pod

"labels": {
  "app": "tas-core"
}

kubernetes
3个回答
35
投票

尝试

kubectl get pods --selector=app=tas-core

https://kubernetes.io/docs/reference/kubectl/quick-reference


15
投票
  • 要通过 kubectl 命令使用一个选择器,请应用以下命令:
    kubectl get po --selector name=value
    ,其中 name 是选择器名称,value 是选择器值。
  • 您可以使用需要列出并使用选择器进行过滤的 rc、svc 或部署(任何 k8s 资源)。
  • 还有一个选项可以使用多个选择器列出或过滤 k8s 资源,只需使用以下命令:
    kubectl get all --selector name1=value1,name2=value2,name3=value3

2
投票

我们应该能够使用标签

selectors
jsonpath

查询 pod 名称
kubectl get pods -l "app.kubernetes.io/name=nginx" -o jsonpath={.items[0].metadata.name}
© www.soinside.com 2019 - 2024. All rights reserved.