label(標(biāo)簽)
標(biāo)簽其實(shí)就一對(duì) key/value挖藏,被關(guān)聯(lián)到k8s對(duì)象上锅论,比如pod/node等。標(biāo)簽可以用來(lái)劃分特定組的對(duì)象,用戶可通過(guò)標(biāo)簽來(lái)組織pod和所有其他Kubemetes對(duì)象。
selector(標(biāo)簽選擇器)
通過(guò)label選擇器拙寡,客戶端/用戶能方便辨識(shí)出一組對(duì)象,API目前支持兩種選擇器:基于相等的和基于集合的琳水。一個(gè)label選擇器一可以由多個(gè)必須條件組成肆糕,由逗號(hào)分隔般堆。在多個(gè)必須條件指定的情況下,所有的條件都必須滿足诚啃,因而逗號(hào)起著AND邏輯運(yùn)算符的作用淮摔。
1.基于相等性或者不相等性的條件
environment=production //所有鍵等于 environment 值為 production 的資源
tier!=frontend //選擇所有鍵為 tier 值不等于 frontend 的資源,和沒(méi)有鍵為 tier 的label的資源始赎。
2.基于set的條件
基于集合的label條件允許用一組值來(lái)過(guò)濾鍵和橙。支持三種操作符: in , notin ,和 exists(僅針對(duì)于key符號(hào)) 造垛。例如
environment in (production, qa)//選擇所有鍵等于 environment 魔招,且value等于 production 或者 qa 的資源
tier notin (frontend, backend)//選擇所有鍵等于 tier 且值是除了 frontend 和 backend 之外的資源,和那些沒(méi)有l(wèi)abel的鍵是 tier 的資源
partition//選擇所有所有有一個(gè)label的鍵為partition的資源五辽;值是什么不會(huì)被檢查
!partitio//選擇所有的沒(méi)有l(wèi)able的鍵名為 partition 的資源办斑;值是什么不會(huì)被檢查
如何通過(guò)label組織pod
標(biāo)簽是可以附加到資源的任意鍵值對(duì),用以選擇具有該確切標(biāo)簽的資源(這是通過(guò)標(biāo)簽選擇器完成的 )。 只要標(biāo)簽的key在資源內(nèi)是唯一的杆逗, 一個(gè)資源便可以擁有多個(gè)標(biāo)簽乡翅。我們定義一些標(biāo)簽來(lái)組織pod.
- app,指定pod屬于那個(gè)應(yīng)用,組件或者服務(wù)罪郊。
-
rel, 它顯示在pod中運(yùn)行的應(yīng)用程序版本峦朗。
file_a7822537ed7147b49f1fa96c53c1d197_blob.png
使用標(biāo)簽選擇器列出pod
我們可以將pod與以下標(biāo)簽選擇器進(jìn)行匹配:
- creation_rnethod!=rnanual 選擇帶有creation_rnethod標(biāo)簽, 并且
值不等于manual的pod - env in (prod, devel)選擇帶有env標(biāo)簽且值為prod或devel的pod
- env notin (prod, devel)選擇帶有env標(biāo)簽排龄, 但其值不是prod或
devel的pod
1 .在標(biāo)簽選擇器中使用單個(gè)條件
selector:
app: pc
2 .在標(biāo)簽選擇器中使用 多個(gè)條件
selector:
app: pc
rel: 20
annotation(注解)
Annotation與Label類似波势,也使用key/value鍵值對(duì)的形式進(jìn)行定義。Label具有嚴(yán)格的命名規(guī)則橄维,它定義的是Kubernetes對(duì)象的元數(shù)據(jù)(Metadata)尺铣,并且用于Label Selector。Annotation則是用戶任意定義的“附加”信息争舞,可以包括標(biāo)簽不允許使用的字符凛忿。以便于外部工具進(jìn)行查找,相比而言annotaion則可以包含更多的信息竞川。大量使用注解可以為每個(gè)pod或其他API對(duì)象添加說(shuō)明店溢,以便每個(gè)使用該集群的人都可以快速查找有關(guān)每個(gè)單獨(dú)對(duì)象的信息
- 以下是在Annotations中記錄信息的一些例子:
1.構(gòu)建、發(fā)布的鏡像信息委乌,如時(shí)間戳床牧,發(fā)行ID,git分支遭贸,PR編號(hào)戈咳,鏡像hashes和注Registry地址。
2.一些日志記錄、監(jiān)視著蛙、分析或audit repositories删铃。
3.一些工具信息:例如,名稱踏堡、版本和構(gòu)建信息猎唁。
4.用戶或工具/系統(tǒng)來(lái)源信息,例如來(lái)自其他生態(tài)系統(tǒng)組件對(duì)象的URL顷蟆。
5.負(fù)責(zé)人電話/座機(jī)胖秒,或一些信息目錄。