4.3.1 标签概述:
标签是Kubernetes极具特色的功能之一,它能够附加于kubernetes的任何资源对象之上。简单来说,标签就是”键值“类型的数据,它们可以用于资源创建时指定,也可以随时添加到活动对象中
一个对象可以拥有不止一个标签。
下面是常用的标签:

版本标签:"release":"stable","release":"canary","release":"beta"
环境标签:"enviroment":"dev","enviroment":"qa","enviroment":"production"
应用标签:"app":"ui","app":"as","app":"sc","app":"pc"
架构层标签:"tier":"frontend","tier":"backend","tier":"cache"
分区标签:"partition":"customerA","partition":"customerB"
品控级标签:"track":"daily","track":"weekly"

4.3.2 管理资源标签
下面的Pod资源清单文件示例pod-with-labels.yaml中使用了两个标签env=qa和tier=frontend:

    使用此配置清单创建定义的Pod对象后,使用kubectl get pods 的"--show-labels"查看标签信息

    使用"-L key1,key2,…"选项可以显示有着特定键的标签信息。
    查看各pod之上有着env和tier键名的标签:

    kubectl label命令可以直接管理活动对象的标签
    给pod-example添加env=production标签

    对于已经有该键名的标签设定新键值时要加上--overwrite参数

4.3.3 标签选择器
-l选项能够指定使用标签选择器
显示键名env不为qa的所有Pod对象:

    显示标签键名env的值不为qa,且标签键名tier的值为frontend的多有Pod对象

    显示标签键名env的值为production或dev的所有Pod对象(KEY in (VALUE1,VALUE2,…)):

    列出标签键名env的值为production或dev,且不存在键名为tier的标签的所有Pod对象:

    此外,Kubernetes的诸多资源对象必须以标签选择器的方式关联到Pod资源对象,例如Service、Deployment和ReplicaSet类型的资源等,它们在spec字段中嵌套使用selector,通过”matchlabels“来指定标签选择器有的甚至支持matchExpression构造复杂的标签选择机制
    > matchlabels:通过直接给定键值对来指定标签选择器
    > matchExpression:基于表达式指定的标签选择器列表

4.3.4 pod节点选择器
Pod节点选择器是标签及标签选择器的一种应用,它能够让Pod对象基于集群中工作节点的标签来挑选倾向运行的目标节点
spec.nodeSelector可以用于定义节点标签选择器

    例如,给k8s-node1与k8s-node2节点设置"disktype=ssd"标签以识别其拥有SSD设备

    如果某Pod资源需要调度至这些具有SSD设备的节点之上,那么只需要为其使用spec.nodeSelector标签选择器即可

    创建pod查看: