Label與Label Selector (8)

講述標(biāo)簽和標(biāo)簽選擇器相關(guān)知識(shí)门扇,包括定義距糖、如何使用標(biāo)簽和標(biāo)簽選擇
器敛惊,不同類型的標(biāo)簽選擇器等
? 使用標(biāo)簽標(biāo)注Kubernetes對(duì)象
? 使用標(biāo)簽選擇器篩選kubernetes對(duì)象
? 區(qū)別不同類型的標(biāo)簽選擇器

目錄

1.標(biāo)簽(Label)

2.標(biāo)簽選擇器(Label Selector)


1.標(biāo)簽

1.1 label
  • 標(biāo)簽(Label)是附在kubernetes對(duì) 象(如pod称簿,deployment等)上的鍵
    值對(duì)(key-value)丰歌,可以在創(chuàng)建時(shí)指定,也可以在創(chuàng)建后指定报辱。
  • Label的值本身不具備具體含義与殃,但可以通過label來篩選對(duì)象特定的子集,
    便于管理。
  • 每一個(gè)對(duì)象可以有多個(gè)標(biāo)簽幅疼。
metadata:
  annotations:
    deployment.kubernetes.io/revision: "1"
  creationTimestamp: "2022-01-28T02:12:00Z"
  generation: 2
  labels:   <======
    app: mydep
  name: mydep
1.2 動(dòng)機(jī)

根據(jù)標(biāo)簽進(jìn)行篩選比如米奸,將所有nginx 的pod 進(jìn)行升級(jí),或刪除爽篷。所有xxx日建立的pod 進(jìn)行回收等等


image.png
1.3 標(biāo)簽的語(yǔ)法
  • 標(biāo)簽由一組鍵值對(duì)構(gòu)成悴晰。
  • Label key的組成:
    ? Key值必須是唯一的
    ? 不得超過63個(gè)字符
    ? 可以使用前綴,使用/分隔逐工,前綴必須是DNS子域铡溪,不得超過253個(gè)字符,系統(tǒng)中的自動(dòng)化組件創(chuàng)建的label必須指定前綴泪喊,kubernetes.io/由kubernetes保留
    ? 起始必須是字母(大小寫都可以)或數(shù)字棕硫,中間可以有連字符、下劃線和點(diǎn)
  • Label value的組成:
    ? 不得超過63個(gè)字符
    ? 起始必須是字母(大小寫都可以)或數(shù)字袒啼,中間可以有連字符饲帅、下劃線和點(diǎn)
1.4 創(chuàng)建時(shí)指定標(biāo)簽
  • labelpod.yaml文件創(chuàng)建一個(gè)pod。
  • 在創(chuàng)建時(shí)指定兩個(gè)label
    ? App:busybox
    ? Version:new


    image.png
1.5 查看Label

通過命令—show-labels可以查看指定對(duì)象的所有l(wèi)abel

[root@k8s-master ~]# k get pod --show-labels 
NAME                     READY   STATUS             RESTARTS   AGE   LABELS
myapp-pod                1/1     Running            21         12d   app=myapp
mydep-65bbdb4c9f-bvwmp   1/1     Running            4          13d   app=mydep,pod-template-hash=65bbdb4c9f
mydep-65bbdb4c9f-sswdr   1/1     Running            5          13d   app=mydep,pod-template-hash=65bbdb4c9f
mydep-65bbdb4c9f-swgvz   1/1     Running            4          13d   app=mydep,pod-template-hash=65bbdb4c9f
mypod                    0/1     ImagePullBackOff   0          12d   run=mypod
1.6 同樣可以使用label指令在已創(chuàng)建的對(duì)象上添加標(biāo)簽

k label pod lablepod-fln79 time=2019

[root@k8s-master tmp]# k get pod --show-labels 
NAME                     READY   STATUS             RESTARTS   AGE   LABELS
lablepod-fln79           1/1     Running            0          21s   controller-uid=a155731a-8a4a-11ec-99fd-000c298dbe7d,job-name=lablepod
myapp-pod                1/1     Running            21         12d   app=myapp
mydep-65bbdb4c9f-bvwmp   1/1     Running            4          13d   app=mydep,pod-template-hash=65bbdb4c9f
mydep-65bbdb4c9f-sswdr   1/1     Running            5          13d   app=mydep,pod-template-hash=65bbdb4c9f
mydep-65bbdb4c9f-swgvz   1/1     Running            4          13d   app=mydep,pod-template-hash=65bbdb4c9f
mypod                    0/1     ImagePullBackOff   0          12d   run=mypod
[root@k8s-master tmp]# k label pod lablepod-fln79 time=2019
pod/lablepod-fln79 labeled
[root@k8s-master tmp]# k get pod --show-labels 
NAME                     READY   STATUS             RESTARTS   AGE   LABELS
lablepod-fln79           1/1     Running            0          82s   controller-uid=a155731a-8a4a-11ec-99fd-000c298dbe7d,job-name=lablepod,time=2019
myapp-pod                1/1     Running            21         12d   app=myapp
mydep-65bbdb4c9f-bvwmp   1/1     Running            4          13d   app=mydep,pod-template-hash=65bbdb4c9f
mydep-65bbdb4c9f-sswdr   1/1     Running            5          13d   app=mydep,pod-template-hash=65bbdb4c9f
mydep-65bbdb4c9f-swgvz   1/1     Running            4          13d   app=mydep,pod-template-hash=65bbdb4c9f
mypod                    0/1     ImagePullBackOff   0          12d   run=mypod

2.標(biāo)簽選擇器(Label Selector)

2.1 標(biāo)簽選擇器 (Labels Selectors)
  • 標(biāo)簽不具備唯一性瘤泪,在通常情況下灶泵,多個(gè)不同的對(duì)象有著相同的標(biāo)簽
  • 通過標(biāo)簽選擇器,用戶或客戶端可以指定批量的對(duì)象進(jìn)行操作对途。標(biāo)簽選擇器也是
    kubernetes的核心分組方式
  • 目前支持兩種標(biāo)簽選擇器赦邻,基于等值的(equality-based)和基于集合的(set-based)
2.2 基于等值的標(biāo)簽選擇器
  • Equality-based標(biāo)簽選擇器允許用標(biāo)簽的key和values過濾。有三種運(yùn)算符可以使用实檀,分別是“=”惶洲,“==”和“!=”膳犹。前兩種運(yùn)算符同義恬吕,代表相等,后一種代表不相等须床。

? 查看有特定標(biāo)簽的對(duì)象
k get pod -l app=mydep --show-labels

[root@k8s-master tmp]# k get pod --show-labels 
NAME                     READY   STATUS             RESTARTS   AGE     LABELS
lablepod-fln79           1/1     Running            0          5m47s   controller-uid=a155731a-8a4a-11ec-99fd-000c298dbe7d,job-name=lablepod,time=2019
myapp-pod                1/1     Running            21         12d     app=myapp
mydep-65bbdb4c9f-bvwmp   1/1     Running            4          13d     app=mydep,pod-template-hash=65bbdb4c9f
mydep-65bbdb4c9f-sswdr   1/1     Running            5          13d     app=mydep,pod-template-hash=65bbdb4c9f
mydep-65bbdb4c9f-swgvz   1/1     Running            4          13d     app=mydep,pod-template-hash=65bbdb4c9f
mypod                    0/1     ImagePullBackOff   0          12d     run=mypod
[root@k8s-master tmp]# k get pod -l app=mydep --show-labels 
NAME                     READY   STATUS    RESTARTS   AGE   LABELS
mydep-65bbdb4c9f-bvwmp   1/1     Running   4          13d   app=mydep,pod-template-hash=65bbdb4c9f
mydep-65bbdb4c9f-sswdr   1/1     Running   5          13d   app=mydep,pod-template-hash=65bbdb4c9f
mydep-65bbdb4c9f-swgvz   1/1     Running   4          13d   app=mydep,pod-template-hash=65bbdb4c9f

? 查看不包括特定標(biāo)簽的對(duì)象

[root@k8s-master tmp]# k get pod -l app!=mydep --show-labels 
NAME             READY   STATUS             RESTARTS   AGE     LABELS
lablepod-fln79   1/1     Running            0          7m57s   controller-uid=a155731a-8a4a-11ec-99fd-000c298dbe7d,job-name=lablepod,time=2019
myapp-pod        1/1     Running            21         12d     app=myapp
mypod            0/1     ImagePullBackOff   0          12d     run=mypod
2.3 基于集合的標(biāo)簽選擇器

Set-based 的標(biāo)簽條件允許用一組value來過濾key铐料。支持三種操作符: in , notin和exists(僅針對(duì)于key符號(hào))

environment in (production, qa)
tier notin (frontend, backend)
partition
!partition

兩種標(biāo)簽選擇器也可以混用
partition in (customerA, customerB),environment!=qa

2.4 標(biāo)簽選擇器常用命令
  • 查看對(duì)象的清單時(shí)豺旬,可以選擇使用-L命令查看標(biāo)簽钠惩,或使用-l命令篩選對(duì)象。
  • 查看pod族阅,并顯示app標(biāo)簽的值
[root@k8s-master runfile]# kubectl get pod -L app
NAME READY STATUS RESTARTS AGE APP
mypod 2/2 Running 0 19s nginx
  • 篩選pod中標(biāo)簽為app=nginx的pod
[root@k8s-master runfile]# kubectl get pod -l app=nginx
NAME READY STATUS RESTARTS AGE
mypod 2/2 Running 0 3m1s
2.5 將節(jié)點(diǎn)打上標(biāo)簽
[root@k8s-master tmp]# k get nodes --show-labels 
NAME         STATUS   ROLES    AGE   VERSION   LABELS
k8s-master   Ready    master   14d   v1.14.1   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-master,kubernetes.io/os=linux,node-role.kubernetes.io/master=
k8s-node1    Ready    <none>   14d   v1.14.1   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-node1,kubernetes.io/os=linux
k8s-node2    Ready    <none>   14d   v1.14.1   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-node2,kubernetes.io/os=linux
[root@k8s-master tmp]# k label nodes k8s-node1 node-role.kubernetes.io/node=
node/k8s-node1 labeled
[root@k8s-master tmp]# k get nodes --show-labels 
NAME         STATUS   ROLES    AGE   VERSION   LABELS
k8s-master   Ready    master   14d   v1.14.1   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-master,kubernetes.io/os=linux,node-role.kubernetes.io/master=
k8s-node1    Ready    node     14d   v1.14.1   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-node1,kubernetes.io/os=linux,node-role.kubernetes.io/node=
k8s-node2    Ready    <none>   14d   v1.14.1   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-node2,kubernetes.io/os=linux
[root@k8s-master tmp]# k label nodes k8s-node2 node-role.kubernetes.io/node=
node/k8s-node2 labeled
[root@k8s-master tmp]# k get nodes --show-labels 
NAME         STATUS   ROLES    AGE   VERSION   LABELS
k8s-master   Ready    master   14d   v1.14.1   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-master,kubernetes.io/os=linux,node-role.kubernetes.io/master=
k8s-node1    Ready    node     14d   v1.14.1   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-node1,kubernetes.io/os=linux,node-role.kubernetes.io/node=
k8s-node2    Ready    node     14d   v1.14.1   beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=k8s-node2,kubernetes.io/os=linux,node-role.kubernetes.io/node=
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末篓跛,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子坦刀,更是在濱河造成了極大的恐慌愧沟,老刑警劉巖蔬咬,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異沐寺,居然都是意外死亡计盒,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門芽丹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人卜朗,你說我怎么就攤上這事拔第。” “怎么了场钉?”我有些...
    開封第一講書人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵蚊俺,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我逛万,道長(zhǎng)泳猬,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任宇植,我火速辦了婚禮得封,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘指郁。我一直安慰自己忙上,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開白布闲坎。 她就那樣靜靜地躺著疫粥,像睡著了一般。 火紅的嫁衣襯著肌膚如雪腰懂。 梳的紋絲不亂的頭發(fā)上梗逮,一...
    開封第一講書人閱讀 51,165評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音绣溜,去河邊找鬼慷彤。 笑死,一個(gè)胖子當(dāng)著我的面吹牛怖喻,可吹牛的內(nèi)容都是我干的瞬欧。 我是一名探鬼主播,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼罢防,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼艘虎!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起咒吐,我...
    開封第一講書人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤野建,失蹤者是張志新(化名)和其女友劉穎属划,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體候生,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡同眯,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了唯鸭。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片须蜗。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖目溉,靈堂內(nèi)的尸體忽然破棺而出明肮,到底是詐尸還是另有隱情,我是刑警寧澤缭付,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布柿估,位于F島的核電站,受9級(jí)特大地震影響陷猫,放射性物質(zhì)發(fā)生泄漏秫舌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一绣檬、第九天 我趴在偏房一處隱蔽的房頂上張望足陨。 院中可真熱鬧,春花似錦娇未、人聲如沸钠右。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)飒房。三九已至,卻和暖如春媚值,著一層夾襖步出監(jiān)牢的瞬間狠毯,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工褥芒, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留嚼松,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓锰扶,卻偏偏與公主長(zhǎng)得像献酗,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子坷牛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容