k8s-Label(標簽)


k8s-Label(標簽)

一、Label是什么?

Label是Kubernetes系統中的一個核心概念。
Label以key/value鍵值對的形式附加到各種對象上,如Pod、Service、RC、Node等。
Label定義了這些對象的可識別屬性,用來對它們進行管理和選擇。Label可以在創建時附加到對象上,也可以在對象創建后通過API進行管理。

二、Label Selector

在為對象定義好Label后,其他對象就可以使用Label Selector(選擇器)來定義其作用的對象了。

Label Selector的定義由多個逗號分隔的條件組成。

"labels": {
"key1": "value1",
"key2": "value2"
}

當前有兩種Label Selector:

基於等式的(Equality-based)和基於集合的(Set-based),在使用時可以將多個Label進行組合來選擇。


1、基於等式的Label Selector使用等式類的表達式來進行選擇:

name = redis-slave: 選擇所有包含Label中key="name"且value="redis-slave"的對象;
env != production: 選擇所有包括Label中的key="env"且value不等於"production"的對象。


2、基於集合的Label Selector使用集合操作的表達式來進行選擇:

name in (redis-master, redis-slave): 選擇所有包含Label中的key="name"且value="redis-master"或"redis-slave"的對象;
name not in (php-frontend): 選擇所有包含Label中的key="name"且value不等於"php-frontend"的對象。

ps:在某些對象需要對另一些對象進行選擇時,可以將多個Label Selector進行組合,使用逗號","進行分隔即可。
基於等式的LabelSelector和基於集合的Label Selector可以任意組合。
例如:

name=redis-slave,env!=production
name not in (php-frontend),env!=production

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM