开发者社区> 问答> 正文

kubernetes(K8S)中的标签与标签选择器的作用是什么啊?

kubernetes(K8S)中的标签与标签选择器的作用是什么啊?

展开
收起
游客vwuxaq6iqaowc 2021-12-07 13:34:29 603 0
1 条回答
写回答
取消 提交回答
  • 标签:是当相同类型的资源对象越来越多的时候,为了更好的管理,可以按照标签将其分为一个组,为的是提升资源对象的管理效率。 标签选择器:就是标签的查询过滤条件。目前API支持两种标签选择器:

    基于等值关系的,如:“=”、“”“==”、“!=”(注:“==”也是等于的意思,yaml文件中的matchLabels字段); 基于集合的,如:in、notin、exists(yaml文件中的matchExpressions字段); 注:in:在这个集合中;notin:不在这个集合中;exists:要么全在(exists)这个集合中,要么都不在(notexists);

    使用标签选择器的操作逻辑:

    在使用基于集合的标签选择器同时指定多个选择器之间的逻辑关系为“与”操作(比如:- {key: name,operator: In,values: [zhangsan,lisi]} ,那么只要拥有这两个值的资源,都会被选中); 使用空值的标签选择器,意味着每个资源对象都被选中(如:标签选择器的键是“A”,两个资源对象同时拥有A这个键,但是值不一样,这种情况下,如果使用空值的标签选择器,那么将同时选中这两个资源对象) 空的标签选择器(注意不是上面说的空值,而是空的,都没有定义键的名称),将无法选择出任何资源; 在基于集合的选择器中,使用“In”或者“Notin”操作时,其values可以为空,但是如果为空,这个标签选择器,就没有任何意义了。

    两种标签选择器类型(基于等值、基于集合的书写方法): selector: matchLabels: #基于等值 app: nginx matchExpressions: #基于集合 – {key: name,operator: In,values: [zhangsan,lisi]} #key、operator、values这三个字段是固定的 – {key: age,operator: Exists,values:} #如果指定为exists,那么values的值一定要为空

    2021-12-07 13:57:02
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
ACK 云原生弹性方案—云原生时代的加速器 立即下载
ACK集群类型选择最佳实践 立即下载
企业运维之云原生和Kubernetes 实战 立即下载

相关镜像