一、Label和Selector:
### --- k8s的;label和selector概述
~~~ Label:对k8s中各种资源进行分类、分组,添加一个具有#特别属性的一个标签。
~~~ Selector:通过#一个过滤的语法进行查找到对应标签的资源
二、label和selector架构说明
三、label和select概述说明
### --- label和select概述说明
~~~ # 使用应用程序的时候需求案例:在发版应用的时候:
~~~ 比如我们有一个Backend容器,还有一个Frontend容器,
~~~ Backend去连接到Frontend是通过Service去连接到后端。
~~~ # 应该是Frontend到service,然后service到Backend
~~~ 我们怎么知道这个service管理的后端Pod是那些呢?就是通过Label和Selector来区分的。
~~~ 我们可以在这个Service上配置一个Selector,app=nginx,这个Pod就有一个标签是app=nginx,
~~~ 这样这个service就可以通过这个标签连接到对应的Pod,然后这个Frontend通过这个Service到后端。
~~~ # 假设情况二:这个后端有一个相同的应用,比如叫Backend Cronjob:
~~~ 这个Cronjob去跑一些程序的应用,但是我们并不希望它去接收流量,
~~~ 这样这个service不能把这个流量打到这个Backend上面,
~~~ 这时候在这个service中加一个Label,加一个过滤,就可以把cronjob接收流量操作给过滤掉。
~~~ # 但是只写了一个App=nginx:但是它对应的Pod有2个,
~~~ 因为它两个应用个对应的标签都是App=nginx。
~~~ # 所以说需要把Backend Pod要打一个特殊属性的标签,
~~~ 比如:Role:backend-app:可以认定它为后端服务器,用来接收流量的,
~~~ Backend Cronjob添加标签:Role:backend-cj:这样在service中再加一个role=backend-app,
~~~ 这样就可以通过两个标签把这个service定位到Backend Pod上,而不是定位在其他Pod上。
~~~ 当然这个Label可以应用到k8s中的任何资源中的。
四、Label和 Selector
### --- Label和 Selector
~~~ 当Kubernetes对系统的任何API对象如Pod和节点进行“分组”时,
~~~ 会对其添加Label(key=value形式的“键-值对”)用以精准地选择对应的API对象。
~~~ 而Selector(标签选择器)则是针对匹配对象的查询方法。注:键-值对就是key-value pair。
~~~ 例如,常用的标签tier可用于区分容器的属性,如frontend、backend;
~~~ 或者一个release_track用于区分容器的环境,如canary、production等。