上文《Kubernetes入门到进阶使用(四)标签介绍》我们介绍了在kubernetes中使用标签,然后也提到了标签选择器,本文我们来介绍下标签选择器。
标签选择器在kubernetes中有两种,分别是:基于等值关系和基于集合。
基于等值关系的标签选择器
上文我们演示的案例就是等值关系,如下图:
这种等值关系的话,主要是应用在yaml文件中的,一般对于kubernetes的了解,基于基于等值关系的标签选择器,除了等于,还有不等于,这里其实说的是查询的时候,不属于yaml的范畴,我们演示下使用等于和不等于的标签选择器查询命令:
kubectl get pods -l app=myapp #查询等于的标签选择器 kubectl get pods -l app!=myapp #查询不等于的标签选择器
基于集合关系的标签选择器
这里基于集合的标签选择器其实主要是写一些规则,满足这些规则的标签的实例都可用,在yaml文件里面的写法如下:
selector: matchLabels: component: redis matchExpressions: - {key: tier, operator: In, values: [cache]} - {key: environment, operator: NotIn, values: [dev]}
这里我们可以用matchlabels,然后后面跟等值的信息,也可以直接使用matchExpressions,后面跟条件表达式这种方式。只要满足条件的标签资源对象,都可以被当前对象给引用起来。
最后我们再介绍下使用kubectl命令操作标签选择器的案例:
1)查找满足等值条件的label的资源对象
kubectl get pods -n ${namespace} -l ${labelname}=${labelvalue} kubectl get pods -n ${namespace} -l ${labelname}==${labelvalue} kubectl get pods -n ${namespace} -l ${labelname}!=${labelvalue}
当然这里也可以直接在kuboard可视化页面上查看:
还没有评论,来说两句吧...