av激情亚洲男人的天堂国语,日韩欧美精品一中文字幕,无码av一区二区三区无码,国产又色又爽又刺激的a片,国产又色又爽又刺激的a片

創(chuàng)新互聯(lián)kubernetes教程:Kubernetes標(biāo)簽和選擇算符

標(biāo)簽和選擇算符

標(biāo)簽(Labels) 是附加到 Kubernetes 對(duì)象(比如 Pods)上的鍵值對(duì)。 標(biāo)簽旨在用于指定對(duì)用戶有意義且相關(guān)的對(duì)象的標(biāo)識(shí)屬性,但不直接對(duì)核心系統(tǒng)有語義含義。 標(biāo)簽可以用于組織和選擇對(duì)象的子集。標(biāo)簽可以在創(chuàng)建時(shí)附加到對(duì)象,隨后可以隨時(shí)添加和修改。 每個(gè)對(duì)象都可以定義一組鍵/值標(biāo)簽。每個(gè)鍵對(duì)于給定對(duì)象必須是唯一的。

吳江ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18980820575(備注:SSL證書合作)期待與您的合作!

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

標(biāo)簽?zāi)軌蛑С指咝У牟樵兒捅O(jiān)聽操作,對(duì)于用戶界面和命令行是很理想的。 應(yīng)使用注解 記錄非識(shí)別信息。

動(dòng)機(jī)

標(biāo)簽使用戶能夠以松散耦合的方式將他們自己的組織結(jié)構(gòu)映射到系統(tǒng)對(duì)象,而無需客戶端存儲(chǔ)這些映射。

服務(wù)部署和批處理流水線通常是多維實(shí)體(例如,多個(gè)分區(qū)或部署、多個(gè)發(fā)行序列、多個(gè)層,每層多個(gè)微服務(wù))。 管理通常需要交叉操作,這打破了嚴(yán)格的層次表示的封裝,特別是由基礎(chǔ)設(shè)施而不是用戶確定的嚴(yán)格的層次結(jié)構(gòu)。

示例標(biāo)簽:

  • ?"release" : "stable"?, ?"release" : "canary" ?
  • ?"environment" : "dev"?, ?"environment" : "qa"?, ?"environment" : "production" ?
  • ?"tier" : "frontend"?, ?"tier" : "backend"?, ?"tier" : "cache" ?
  • ?"partition" : "customerA"?, ?"partition" : "customerB" ?
  • ?"track" : "daily"?, ?"track" : "weekly"?

有一些常用標(biāo)簽的例子; 你可以任意制定自己的約定。 請(qǐng)記住,標(biāo)簽的 Key 對(duì)于給定對(duì)象必須是唯一的。

語法和字符集 

標(biāo)簽 是鍵值對(duì)。有效的標(biāo)簽鍵有兩個(gè)段:可選的前綴和名稱,用斜杠(?/?)分隔。 名稱段是必需的,必須小于等于 63 個(gè)字符,以字母數(shù)字字符(?[a-z0-9A-Z]?)開頭和結(jié)尾, 帶有破折號(hào)(?-?),下劃線(?_?),點(diǎn)( ?.?)和之間的字母數(shù)字。 前綴是可選的。如果指定,前綴必須是 DNS 子域:由點(diǎn)(?.?)分隔的一系列 DNS 標(biāo)簽,總共不超過 253 個(gè)字符, 后跟斜杠(?/?)。

如果省略前綴,則假定標(biāo)簽鍵對(duì)用戶是私有的。 向最終用戶對(duì)象添加標(biāo)簽的自動(dòng)系統(tǒng)組件(例如 ?kube-scheduler?、?kube-controller-manager?、 ?kube-apiserver?、?kubectl? 或其他第三方自動(dòng)化工具)必須指定前綴。

?kubernetes.io/? 和 ?K8S.io/? 前綴是為 Kubernetes 核心組件保留的。

有效標(biāo)簽值:

  • 必須為 63 個(gè)字符或更少(可以為空)
  • 除非標(biāo)簽值為空,必須以字母數(shù)字字符(?[a-z0-9A-Z]?)開頭和結(jié)尾
  • 包含破折號(hào)(?-?)、下劃線(?_?)、點(diǎn)(?.?)和字母或數(shù)字。

標(biāo)簽選擇算符 

與名稱和 UID 不同, 標(biāo)簽不支持唯一性。通常,我們希望許多對(duì)象攜帶相同的標(biāo)簽。

通過 標(biāo)簽選擇算符,客戶端/用戶可以識(shí)別一組對(duì)象。標(biāo)簽選擇算符是 Kubernetes 中的核心分組原語。

API 目前支持兩種類型的選擇算符:基于等值的 和 基于集合的。 標(biāo)簽選擇算符可以由逗號(hào)分隔的多個(gè) 需求 組成。 在多個(gè)需求的情況下,必須滿足所有要求,因此逗號(hào)分隔符充當(dāng)邏輯 與(?&&?)運(yùn)算符。

空標(biāo)簽選擇算符或者未指定的選擇算符的語義取決于上下文, 支持使用選擇算符的 API 類別應(yīng)該將算符的合法性和含義用文檔記錄下來。

對(duì)于某些 API 類別(例如 ReplicaSet)而言,兩個(gè)實(shí)例的標(biāo)簽選擇算符不得在命名空間內(nèi)重疊, 否則它們的控制器將互相沖突,無法確定應(yīng)該存在的副本個(gè)數(shù)。

對(duì)于基于等值的和基于集合的條件而言,不存在邏輯或(||)操作符。 你要確保你的過濾語句按合適的方式組織。

基于等值的需求

基于等值 或 基于不等值 的需求允許按標(biāo)簽鍵和值進(jìn)行過濾。 匹配對(duì)象必須滿足所有指定的標(biāo)簽約束,盡管它們也可能具有其他標(biāo)簽。 可接受的運(yùn)算符有?=?、?==? 和 ?!=? 三種。 前兩個(gè)表示 相等(并且只是同義詞),而后者表示 不相等。例如:

environment = production
tier != frontend

前者選擇所有資源,其鍵名等于 ?environment?,值等于 ?production?。 后者選擇所有資源,其鍵名等于 ?tier?,值不同于 ?frontend?,所有資源都沒有帶有 ?tier ?鍵的標(biāo)簽。 可以使用逗號(hào)運(yùn)算符來過濾 ?production ?環(huán)境中的非 ?frontend ?層資源:?environment=production,tier!=frontend?。

基于等值的標(biāo)簽要求的一種使用場(chǎng)景是 Pod 要指定節(jié)點(diǎn)選擇標(biāo)準(zhǔn)。 例如,下面的示例 Pod 選擇帶有標(biāo)簽 "?accelerator=nvidia-tesla-p100?"。

apiVersion: v1
kind: Pod
metadata:
  name: cuda-test
spec:
  containers:
    - name: cuda-test
      image: "k8s.gcr.io/cuda-vector-add:v0.1"
      resources:
        limits:
          nvidia.com/gpu: 1
  nodeSelector:
    accelerator: nvidia-tesla-p100

基于集合的需求

基于集合 的標(biāo)簽需求允許你通過一組值來過濾鍵。 支持三種操作符:?in?、?notin ?和 ?exists ?(只可以用在鍵標(biāo)識(shí)符上)。例如:

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

  • 第一個(gè)示例選擇了所有鍵等于 ?environment ?并且值等于 ?production ?或者 ?qa ?的資源。
  • 第二個(gè)示例選擇了所有鍵等于 ?tier ?并且值不等于 ?frontend ?或者 ?backend ?的資源,以及所有沒有 ?tier ?鍵標(biāo)簽的資源。
  • 第三個(gè)示例選擇了所有包含了有 ?partition ?標(biāo)簽的資源;沒有校驗(yàn)它的值。
  • 第四個(gè)示例選擇了所有沒有 ?partition ?標(biāo)簽的資源;沒有校驗(yàn)它的值。

類似地,逗號(hào)分隔符充當(dāng) 與 運(yùn)算符。因此,使用 ?partition ?鍵(無論為何值)和 ?environment ?不同于 ?qa? 來過濾資源可以使用 ?partition, environment notin(qa)? 來實(shí)現(xiàn)。

基于集合 的標(biāo)簽選擇算符是相等標(biāo)簽選擇算符的一般形式,因?yàn)?nbsp;?environment=production? 等同于 ?environment in(production)?;?!=? 和 ?notin ?也是類似的。

基于集合 的要求可以與基于 相等 的要求混合使用。例如:?partition in (customerA, customerB),environment!=qa?。

API

LIST 和 WATCH 過濾

LIST 和 WATCH 操作可以使用查詢參數(shù)指定標(biāo)簽選擇算符過濾一組對(duì)象。 兩種需求都是允許的。(這里顯示的是它們出現(xiàn)在 URL 查詢字符串中)

  • 基于等值 的需求: ??labelSelector=environment%3Dproduction,tier%3Dfrontend ?
  • 基于集合 的需求: ??labelSelector=environment+in+%28production%2Cqa%29%2Ctier+in+%28frontend%29?

兩種標(biāo)簽選擇算符都可以通過 REST 客戶端用于 list 或者 watch 資源。 例如,使用 ?kubectl ?定位 ?apiserver?,可以使用 基于等值 的標(biāo)簽選擇算符可以這么寫:

kubectl get pods -l environment=production,tier=frontend

或者使用 基于集合的 需求:

kubectl get pods -l 'environment in (production),tier in (frontend)'

正如剛才提到的,基于集合 的需求更具有表達(dá)力。例如,它們可以實(shí)現(xiàn)值的 或 操作:

kubectl get pods -l 'environment in (production, qa)'

或者通過 exists 運(yùn)算符限制不匹配:

kubectl get pods -l 'environment,environment notin (frontend)'

在 API 對(duì)象中設(shè)置引用

一些 Kubernetes 對(duì)象,例如 ?services ?和 ?replicationcontrollers ?, 也使用了標(biāo)簽選擇算符去指定了其他資源的集合,例如 pods。

Service 和 ReplicationController

一個(gè) ?Service ?指向的一組 Pods 是由標(biāo)簽選擇算符定義的。同樣,一個(gè) ?ReplicationController ?應(yīng)該管理的 pods 的數(shù)量也是由標(biāo)簽選擇算符定義的。

兩個(gè)對(duì)象的標(biāo)簽選擇算符都是在 ?json ?或者 ?yaml ?文件中使用映射定義的,并且只支持 基于等值 需求的選擇算符:

"selector": {
    "component" : "redis",
}

或者

selector:
    component: redis

這個(gè)選擇算符(分別在 ?json ?或者 ?yaml ?格式中) 等價(jià)于 ?component=redis? 或 ?component in (redis)? 。

支持基于集合需求的資源

比較新的資源,例如 ?Job?、 ?Deployment?、 ?Replica Set? 和 ?DaemonSet ?, 也支持 基于集合的 需求。

selector:
  matchLabels:
    component: redis
  matchExpressions:
    - {key: tier, operator: In, values: [cache]}
    - {key: environment, operator: NotIn, values: [dev]}

?matchLabels? 是由 ?{key,value}? 對(duì)組成的映射。 ?matchLabels? 映射中的單個(gè) ?{key,value }? 等同于 ?matchExpressions ?的元素, 其 ?key ?字段為 "key",?operator ?為 "In",而 ?values ?數(shù)組僅包含 "value"。 ?matchExpressions ?是 Pod 選擇算符需求的列表。 有效的運(yùn)算符包括 ?In?、?NotIn?、?Exists ?和 ?DoesNotExist?。 在 ?In ?和 ?NotIn ?的情況下,設(shè)置的值必須是非空的。 來自 ?matchLabels ?和 ?matchExpressions ?的所有要求都按邏輯與的關(guān)系組合到一起 -- 它們必須都滿足才能匹配。

選擇節(jié)點(diǎn)集 

通過標(biāo)簽進(jìn)行選擇的一個(gè)用例是確定節(jié)點(diǎn)集,方便 Pod 調(diào)度。


本文題目:創(chuàng)新互聯(lián)kubernetes教程:Kubernetes標(biāo)簽和選擇算符
URL地址:http://uogjgqi.cn/article/dhssopc.html
掃二維碼與項(xiàng)目經(jīng)理溝通

我們?cè)谖⑿派?4小時(shí)期待你的聲音

解答本文疑問/技術(shù)咨詢/運(yùn)營(yíng)咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流