一、标签
标签的主要作用:解决同类型的资源对象越来越多,为了更好的管理,按照标签分组;
**常用的标签分类:**
release(版本):stable(稳定版)、canary(金丝雀版本、可以理解为测试版)、beta(测试版)
environment(环境变量):dev(开发)、qa(测试)、production(生产)
application(应用):ui、as(应用软件)、pc、sc
tier(架构层级):frontend(前端)、backend(后端)、cache(缓存、隐藏)
partition(分区):customerA(客户A)、customerB(客户B)
track(品控级别):daily(每天)、weekly(每周)
K8s集群中虽然没有对有严格的要求,但是标签还是要做到:见名知意!方便自己也方便别人!
常用的命令有:
[root@master yaml]# kubectl get pod --show-labels //显示pod的标签
[root@master yaml]# kubectl get pod -L env //显示键对应的值
[root@master yaml]# kubectl get pod -l env //通过小l查看仅包含env标签的资源
[root@master yaml]# kubectl get pod -l env --show-labels //显示对应的键值
[root@master yaml]# kubectl label pod labels app=pc //给pod打标签
[root@master yaml]# kubectl label pod labels app- //去除标签
[root@master yaml]# kubectl label pod labels env=dev --overwrite //修改标签内容
标签与标签选择器的关系:
如果标签有多个,标签选择器选择其中一个,也可以关联成功!
如果选择器有多个,那么标签必须满足标签选择器的条件,才可关联成功!
标签选择器:标签的查询过滤条件
基于等值关系的(equality-based):”=“、”==“、”!=“前两个等于,最后一个不等于
基于集合关系(set-based):in、notin、exists三种;
selector:
matchLables: //指定等值关系的标签选择器
app: nginx
matchExpressions: //基于集合的标签选择器。选择器列表间为”逻辑与“关系;使用In或NotIn操作是,其values不强制要求为空的字符串列表,而使用Exists或DostNotExists时,其values必须为空;
- {key: name,operator: In,values: [zhangsan,lisi]}
- {key: age,operator: Exists,values:}
使用标签选择器的逻辑:
同时指定的多个选择器之间的逻辑关系为”与“操作;
使用空值的标签选择器意味着每个资源对象都将被选择中;
空的标签选择器无法选中任何资源;
二、常见的Pod控制器
Pod控制器基本概念:
Pod是kubernetes的最小单元,