日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Kubernetes-Label

發布時間:2024/4/13 编程问答 56 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Kubernetes-Label 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Label是kubernetes系統中的一個重要概念。它的作用就是在資源上添加標識,用來對它們進行區分和選擇。

Label的特點:

  • 一個Label會以key/value鍵值對的形式附加到各種對象上,如Node、Pod、Service等等

  • 一個資源對象可以定義任意數量的Label ,同一個Label也可以被添加到任意數量的資源對象上去

  • Label通常在資源對象定義時確定,當然也可以在對象創建后動態添加或者刪除

可以通過Label實現資源的多維度分組,以便靈活、方便地進行資源分配、調度、配置、部署等管理工作。

一些常用的Label 示例如下:

  • 版本標簽:"version":"release", "version":"stable"......

  • 環境標簽:"environment":"dev","environment":"test","environment":"pro"

  • 架構標簽:"tier":"frontend","tier":"backend"

標簽定義完畢之后,還要考慮到標簽的選擇,這就要使用到Label Selector,即:

Label用于給某個資源對象定義標識

Label Selector用于查詢和篩選擁有某些標簽的資源對象

當前有兩種Label Selector:

  • 基于等式的Label Selector

    name = slave: 選擇所有包含Label中key="name"且value="slave"的對象

    env != production: 選擇所有包括Label中的key="env"且value不等于"production"的對象

  • 基于集合的Label Selector

    name in (master, slave): 選擇所有包含Label中的key="name"且value="master"或"slave"的對象

    name not in (frontend): 選擇所有包含Label中的key="name"且value不等于"frontend"的對象

標簽的選擇條件可以使用多個,此時將多個Label Selector進行組合,使用逗號","進行分隔即可。例如:

name=slave,env!=production

name not in (frontend),env!=production

命令方式

# 為pod資源打標簽 [root@master ~]# kubectl label pod nginx-pod version=1.0 -n dev pod/nginx-pod labeled ? # 為pod資源更新標簽 [root@master ~]# kubectl label pod nginx-pod version=2.0 -n dev --overwrite pod/nginx-pod labeled ? # 查看標簽 [root@master ~]# kubectl get pod nginx-pod -n dev --show-labels NAME ? ? ? READY ? STATUS ? RESTARTS ? AGE ? LABELS nginx-pod ? 1/1 ? ? Running ? 0 ? ? ? ? 10m ? version=2.0 ? # 篩選標簽 [root@master ~]# kubectl get pod -n dev -l version=2.0 --show-labels NAME ? ? ? READY ? STATUS ? RESTARTS ? AGE ? LABELS nginx-pod ? 1/1 ? ? Running ? 0 ? ? ? ? 17m ? version=2.0 [root@master ~]# kubectl get pod -n dev -l version!=2.0 --show-labels No resources found in dev namespace. ? #刪除標簽 [root@master ~]# kubectl label pod nginx-pod version- -n dev pod/nginx-pod labeled

配置方式

apiVersion: v1 kind: Pod metadata:name: nginxnamespace: devlabels:version: "3.0" env: "test" spec:containers:- image: nginx:latestname: podports:- name: nginx-portcontainerPort: 80protocol: TCP

然后就可以執行對應的更新命令了:kubectl apply -f pod-nginx.yaml

總結

以上是生活随笔為你收集整理的Kubernetes-Label的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。