金庆的专栏

  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  423 随笔 :: 0 文章 :: 454 评论 :: 0 Trackbacks
# kubectl 的标签选择器

(金庆的专栏 2021.1)

摘自:Kubenetes in Action

首先可以给 pod 添加 label:
```
kubectl label pod mypod abc=123
```

显示 label:
```
kubectl get pod --show-labels
```

显示部分 label:
```
kubectl get pod -L app,abc
```

更改
```
kubeclt label --overwrite pod mypod abc=456
```

删除不需要 --overwrite
```
kubectl label pod mypod abc-
```

有了标签后,可以
* 选择没有特定标签
* 选择有特定标签
* 选择有特定标签并且值相等或值不等

列出 abc=123 的 pod
```
kubectl get pod -l abc=123
```

列出没有 abc 标签的 pod
```
kubectl get pod -l '!abc'
```
注意 Linux shell 叹号必须用引号括起来:

还可以这样:
```
kubectl get pod -l 'abc!=123'
kubectl get pod -l 'abc in (123,456,ddd)'
kubectl get pod -l 'abc notin (123,456)'
```

如果是多个 -l, 则仅最后一个 -l 有效.
```
kubectl get pod -l abc -l efg
```

同时满足:
```
kubectl get pod -l abc=123,efg=456
```

好像没有办法表示或者关系, 见:
https://v1-16.docs.kubernetes.io/docs/concepts/overview/working-with-objects/labels/
```
Caution: For both equality-based and set-based conditions there is no logical OR (||) operator. Ensure your filter statements are structured accordingly.
```
posted on 2021-01-26 08:57 金庆 阅读(1025) 评论(0)  编辑 收藏 引用

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理