知名標籤、註解和汙點

Kubernetes 保留 kubernetes.iok8s.io 名稱空間中的所有標籤、註解和汙點。

本文件既可作為值的參考,也是分配值的協調點。

API 物件上使用的標籤、註解和汙點

apf.kubernetes.io/autoupdate-spec

型別:註解

示例:apf.kubernetes.io/autoupdate-spec: "true"

用於:FlowSchemaPriorityLevelConfiguration 物件

如果在 FlowSchema 或 PriorityLevelConfiguration 上將此註解設定為 true,則該物件的 spec 由 kube-apiserver 管理。如果 API 伺服器無法識別 APF 物件,並且你將其註解為自動更新,則 API 伺服器將刪除整個物件。否則,API 伺服器不管理物件 spec。有關更多詳細資訊,請閱讀強制和建議配置物件的維護

app.kubernetes.io/component

型別:標籤

示例:app.kubernetes.io/component: "database"

用於:所有物件(通常用於工作負載資源)。

應用程式架構中的元件。

推薦標籤之一。

app.kubernetes.io/created-by(已棄用)

型別:標籤

示例:app.kubernetes.io/created-by: "controller-manager"

用於:所有物件(通常用於工作負載資源)。

建立此資源的控制器/使用者。

app.kubernetes.io/instance

型別:標籤

示例:app.kubernetes.io/instance: "mysql-abcxyz"

用於:所有物件(通常用於工作負載資源)。

標識應用程式例項的唯一名稱。要分配非唯一名稱,請使用app.kubernetes.io/name

推薦標籤之一。

app.kubernetes.io/managed-by

型別:標籤

示例:app.kubernetes.io/managed-by: "helm"

用於:所有物件(通常用於工作負載資源)。

用於管理應用程式操作的工具。

推薦標籤之一。

app.kubernetes.io/name

型別:標籤

示例:app.kubernetes.io/name: "mysql"

用於:所有物件(通常用於工作負載資源)。

應用程式的名稱。

推薦標籤之一。

app.kubernetes.io/part-of

型別:標籤

示例:app.kubernetes.io/part-of: "wordpress"

用於:所有物件(通常用於工作負載資源)。

此物件所屬的高階應用程式的名稱。

推薦標籤之一。

app.kubernetes.io/version

型別:標籤

示例:app.kubernetes.io/version: "5.7.21"

用於:所有物件(通常用於工作負載資源)。

應用程式的當前版本。

常見的值形式包括

推薦標籤之一。

applyset.kubernetes.io/additional-namespaces (alpha)

型別:註解

示例:applyset.kubernetes.io/additional-namespaces: "namespace1,namespace2"

用於:用作 ApplySet 父物件的物件。

此註解的使用是 Alpha 階段。對於 Kubernetes 1.34 版本,如果定義它們的 CustomResourceDefinition 具有 applyset.kubernetes.io/is-parent-type 標籤,則可以在 Secrets、ConfigMaps 或自定義資源上使用此註解。

用於實現 kubectl 中基於 ApplySet 的修剪的規範的一部分。此註解應用於用於跟蹤 ApplySet 的父物件,以將 ApplySet 的範圍擴充套件到父物件自身的名稱空間(如果有)之外。該值是逗號分隔的名稱空間名稱列表,這些名稱空間不是父物件所在的名稱空間,其中找到了物件。

applyset.kubernetes.io/contains-group-kinds (alpha)

型別:註解

示例:applyset.kubernetes.io/contains-group-kinds: "certificates.cert-manager.io,configmaps,deployments.apps,secrets,services"

用於:用作 ApplySet 父物件的物件。

此註解的使用是 Alpha 階段。對於 Kubernetes 1.34 版本,如果定義它們的 CustomResourceDefinition 具有 applyset.kubernetes.io/is-parent-type 標籤,則可以在 Secrets、ConfigMaps 或自定義資源上使用此註解。

用於實現 kubectl 中基於 ApplySet 的修剪的規範的一部分。此註解應用於用於跟蹤 ApplySet 的父物件,以最佳化 ApplySet 成員物件的列出。它在 ApplySet 規範中是可選的,因為工具可以執行發現或使用不同的最佳化。但是,截至 Kubernetes 1.34 版本,kubectl 要求它。如果存在,此註解的值必須是組種類(採用完全限定名稱格式,即 <resource>.<group>)的逗號分隔列表。

applyset.kubernetes.io/contains-group-resources(已棄用)

型別:註解

示例:applyset.kubernetes.io/contains-group-resources: "certificates.cert-manager.io,configmaps,deployments.apps,secrets,services"

用於:用作 ApplySet 父物件的物件。

對於 Kubernetes 1.34 版本,如果定義它們的 CustomResourceDefinition 具有 applyset.kubernetes.io/is-parent-type 標籤,則可以在 Secrets、ConfigMaps 或自定義資源上使用此註解。

用於實現 kubectl 中基於 ApplySet 的修剪的規範的一部分。此註解應用於用於跟蹤 ApplySet 的父物件,以最佳化 ApplySet 成員物件的列出。它在 ApplySet 規範中是可選的,因為工具可以執行發現或使用不同的最佳化。但是,在 Kubernetes 1.34 版本中,kubectl 要求它。如果存在,此註解的值必須是組種類(採用完全限定名稱格式,即 <resource>.<group>)的逗號分隔列表。

applyset.kubernetes.io/id (alpha)

型別:標籤

示例:applyset.kubernetes.io/id: "applyset-0eFHV8ySqp7XoShsGvyWFQD3s96yqwHmzc4e0HR1dsY-v1"

用於:用作 ApplySet 父物件的物件。

此標籤的使用是 Alpha 階段。對於 Kubernetes 1.34 版本,如果定義它們的 CustomResourceDefinition 具有 applyset.kubernetes.io/is-parent-type 標籤,則可以在 Secrets、ConfigMaps 或自定義資源上使用此標籤。

用於實現 kubectl 中基於 ApplySet 的修剪的規範的一部分。此標籤使物件成為 ApplySet 父物件。其值是 ApplySet 的唯一 ID,該 ID 源自父物件本身的身份。此 ID 必須是物件上組種類名稱名稱空間的雜湊值的 base64 編碼(使用 RFC4648 的 URL 安全編碼),形式為:<base64(sha256(<name>.<namespace>.<kind>.<group>))>。此標籤的值與物件 UID 之間沒有關係。

applyset.kubernetes.io/is-parent-type (alpha)

型別:標籤

示例:applyset.kubernetes.io/is-parent-type: "true"

用於:自定義資源定義 (CRD)

此標籤的使用是 Alpha 階段。用於實現 kubectl 中基於 ApplySet 的修剪的規範的一部分。你可以在 CustomResourceDefinition (CRD) 上設定此標籤,以將其定義的自定義資源型別(而不是 CRD 本身)標識為 ApplySet 的允許父級。此標籤的唯一允許值為 "true";如果你想將 CRD 標記為不是 ApplySet 的有效父級,請省略此標籤。

applyset.kubernetes.io/part-of (alpha)

型別:標籤

示例:applyset.kubernetes.io/part-of: "applyset-0eFHV8ySqp7XoShsGvyWFQD3s96yqwHmzc4e0HR1dsY-v1"

用於:所有物件。

此標籤的使用是 Alpha 階段。用於實現 kubectl 中基於 ApplySet 的修剪的規範的一部分。此標籤使物件成為 ApplySet 的成員。標籤的值必須與父物件上 applyset.kubernetes.io/id 標籤的值匹配。

applyset.kubernetes.io/tooling (alpha)

型別:註解

示例:applyset.kubernetes.io/tooling: "kubectl/v1.34"

用於:用作 ApplySet 父物件的物件。

此註解的使用是 Alpha 階段。對於 Kubernetes 1.34 版本,如果定義它們的 CustomResourceDefinition 具有 applyset.kubernetes.io/is-parent-type 標籤,則可以在 Secrets、ConfigMaps 或自定義資源上使用此註解。

用於實現 kubectl 中基於 ApplySet 的修剪的規範的一部分。此註解應用於用於跟蹤 ApplySet 的父物件,以指示哪個工具管理該 ApplySet。工具應拒絕修改屬於其他工具的 ApplySet。該值必須採用 <toolname>/<semver> 格式。

apps.kubernetes.io/pod-index (beta)

型別:標籤

示例:apps.kubernetes.io/pod-index: "0"

用於:Pod

當 StatefulSet 控制器為 StatefulSet 建立 Pod 時,它會在此 Pod 上設定此標籤。標籤的值是正在建立的 Pod 的序數索引。

有關更多詳細資訊,請參閱 StatefulSet 主題中的Pod 索引標籤。請注意,必須啟用 PodIndexLabel 特性門控才能將此標籤新增到 Pod。

resource.kubernetes.io/pod-claim-name

型別:註解

示例:resource.kubernetes.io/pod-claim-name: "my-pod-claim"

用於:ResourceClaim

此註解分配給生成的 ResourceClaims。其值對應於為其建立 ResourceClaim 的任何 Pod 的 .spec 中資源宣告的名稱。此註解是動態資源分配的內部實現細節。你不需要讀取或修改此註解的值。

cluster-autoscaler.kubernetes.io/safe-to-evict

型別:註解

示例:cluster-autoscaler.kubernetes.io/safe-to-evict: "true"

用於:Pod

當此註解設定為 "true" 時,即使其他規則通常會阻止驅逐,叢集自動擴縮器也允許驅逐 Pod。叢集自動擴縮器永遠不會驅逐顯式設定為 "false" 的 Pod;你可以在你希望繼續執行的重要 Pod 上設定它。如果未設定此註解,則叢集自動擴縮器遵循其 Pod 級別行為。

config.kubernetes.io/local-config

型別:註解

示例:config.kubernetes.io/local-config: "true"

用於:所有物件

此註解用於清單中,將物件標記為不應提交給 Kubernetes API 的本地配置。

此註解的值 "true" 表示該物件僅由客戶端工具使用,不應提交給 API 伺服器。

"false" 可用於宣告即使物件在其他情況下被假定為本地,也應將其提交給 API 伺服器。

此註解是 Kubernetes 資源模型 (KRM) 函式規範的一部分,該規範由 Kustomize 和類似的第三方工具使用。例如,Kustomize 從其最終構建輸出中刪除具有此註解的物件。

container.apparmor.security.beta.kubernetes.io/*(已棄用)

型別:註解

示例:container.apparmor.security.beta.kubernetes.io/my-container: my-custom-profile

用於:Pod

此註解允許你指定 Kubernetes Pod 中容器的 AppArmor 安全配置檔案。從 Kubernetes v1.30 開始,應使用 appArmorProfile 欄位設定此值。要了解更多資訊,請參閱 AppArmor 教程。該教程演示瞭如何使用 AppArmor 限制容器的功能和訪問。

指定的配置檔案規定了容器化程序必須遵守的一組規則和限制。這有助於強制執行容器的安全策略和隔離。

internal.config.kubernetes.io/*(保留字首)

型別:註解

用於:所有物件

此字首保留供根據 Kubernetes 資源模型 (KRM) 函式規範充當協調器的工具內部使用。帶有此字首的註解是協調過程的內部註解,不會持久化到檔案系統上的清單中。換句話說,協調器工具在從本地檔案系統讀取檔案時應設定這些註解,並在將函式輸出寫回檔案系統時將其刪除。

KRM 函式不得修改帶有此字首的註解,除非對給定註解另有規定。這使得協調器工具可以新增額外的內部註解,而無需更改現有函式。

internal.config.kubernetes.io/path

型別:註解

示例:internal.config.kubernetes.io/path: "relative/file/path.yaml"

用於:所有物件

此註解記錄了載入物件時清單檔案的斜線分隔、與作業系統無關的相對路徑。該路徑相對於檔案系統上的固定位置,由協調器工具確定。

此註解是 Kubernetes 資源模型 (KRM) 函式規範的一部分,該規範由 Kustomize 和類似的第三方工具使用。

KRM 函式不應修改輸入物件上的此註解,除非它正在修改引用的檔案。KRM 函式可以在其生成的物件上包含此註解。

internal.config.kubernetes.io/index

型別:註解

示例:internal.config.kubernetes.io/index: "2"

用於:所有物件

此註解記錄了清單檔案中包含物件的 YAML 文件的零索引位置。請注意,YAML 文件由三個破折號 (---) 分隔,每個文件可以包含一個物件。當未指定此註解時,預設為 0。

此註解是 Kubernetes 資源模型 (KRM) 函式規範的一部分,該規範由 Kustomize 和類似的第三方工具使用。

KRM 函式不應修改輸入物件上的此註解,除非它正在修改引用的檔案。KRM 函式可以在其生成的物件上包含此註解。

kube-scheduler-simulator.sigs.k8s.io/bind-result

型別:註解

示例:kube-scheduler-simulator.sigs.k8s.io/bind-result: '{"DefaultBinder":"success"}'

用於:Pod

此註解記錄了繫結排程程式外掛的結果,由 https://sigs.k8s.io/kube-scheduler-simulator 使用。

kube-scheduler-simulator.sigs.k8s.io/filter-result

型別:註解

示例

kube-scheduler-simulator.sigs.k8s.io/filter-result: >-
      {"node-282x7":{"AzureDiskLimits":"passed","EBSLimits":"passed","GCEPDLimits":"passed","InterPodAffinity":"passed","NodeAffinity":"passed","NodeName":"passed","NodePorts":"passed","NodeResourcesFit":"passed","NodeUnschedulable":"passed","NodeVolumeLimits":"passed","PodTopologySpread":"passed","TaintToleration":"passed","VolumeBinding":"passed","VolumeRestrictions":"passed","VolumeZone":"passed"},"node-gp9t4":{"AzureDiskLimits":"passed","EBSLimits":"passed","GCEPDLimits":"passed","InterPodAffinity":"passed","NodeAffinity":"passed","NodeName":"passed","NodePorts":"passed","NodeResourcesFit":"passed","NodeUnschedulable":"passed","NodeVolumeLimits":"passed","PodTopologySpread":"passed","TaintToleration":"passed","VolumeBinding":"passed","VolumeRestrictions":"passed","VolumeZone":"passed"}}      

用於:Pod

此註解記錄了過濾排程程式外掛的結果,由 https://sigs.k8s.io/kube-scheduler-simulator 使用。

kube-scheduler-simulator.sigs.k8s.io/finalscore-result

型別:註解

示例

kube-scheduler-simulator.sigs.k8s.io/finalscore-result: >-
      {"node-282x7":{"ImageLocality":"0","InterPodAffinity":"0","NodeAffinity":"0","NodeNumber":"0","NodeResourcesBalancedAllocation":"76","NodeResourcesFit":"73","PodTopologySpread":"200","TaintToleration":"300","VolumeBinding":"0"},"node-gp9t4":{"ImageLocality":"0","InterPodAffinity":"0","NodeAffinity":"0","NodeNumber":"0","NodeResourcesBalancedAllocation":"76","NodeResourcesFit":"73","PodTopologySpread":"200","TaintToleration":"300","VolumeBinding":"0"}}      

用於:Pod

此註解記錄了排程程式根據得分排程程式外掛的得分計算的最終得分,由 https://sigs.k8s.io/kube-scheduler-simulator 使用。

kube-scheduler-simulator.sigs.k8s.io/permit-result

型別:註解

示例:kube-scheduler-simulator.sigs.k8s.io/permit-result: '{"CustomPermitPlugin":"success"}'

用於:Pod

此註解記錄了許可排程程式外掛的結果,由 https://sigs.k8s.io/kube-scheduler-simulator 使用。

kube-scheduler-simulator.sigs.k8s.io/permit-result-timeout

型別:註解

示例:kube-scheduler-simulator.sigs.k8s.io/permit-result-timeout: '{"CustomPermitPlugin":"10s"}'

用於:Pod

此註解記錄了許可排程程式外掛返回的超時,由 https://sigs.k8s.io/kube-scheduler-simulator 使用。

kube-scheduler-simulator.sigs.k8s.io/postfilter-result

型別:註解

示例:kube-scheduler-simulator.sigs.k8s.io/postfilter-result: '{"DefaultPreemption":"success"}'

用於:Pod

此註解記錄了後過濾排程程式外掛的結果,由 https://sigs.k8s.io/kube-scheduler-simulator 使用。

kube-scheduler-simulator.sigs.k8s.io/prebind-result

型別:註解

示例:kube-scheduler-simulator.sigs.k8s.io/prebind-result: '{"VolumeBinding":"success"}'

用於:Pod

此註解記錄了預繫結排程程式外掛的結果,由 https://sigs.k8s.io/kube-scheduler-simulator 使用。

kube-scheduler-simulator.sigs.k8s.io/prefilter-result

型別:註解

示例:kube-scheduler-simulator.sigs.k8s.io/prebind-result: '{"NodeAffinity":"[\"node-\a"]"}'

用於:Pod

此註解記錄了預過濾排程程式外掛的 PreFilter 結果,由 https://sigs.k8s.io/kube-scheduler-simulator 使用。

kube-scheduler-simulator.sigs.k8s.io/prefilter-result-status

型別:註解

示例

kube-scheduler-simulator.sigs.k8s.io/prefilter-result-status: >-
      {"InterPodAffinity":"success","NodeAffinity":"success","NodePorts":"success","NodeResourcesFit":"success","PodTopologySpread":"success","VolumeBinding":"success","VolumeRestrictions":"success"}      

用於:Pod

此註解記錄了預過濾排程程式外掛的結果,由 https://sigs.k8s.io/kube-scheduler-simulator 使用。

kube-scheduler-simulator.sigs.k8s.io/prescore-result

型別:註解

示例

    kube-scheduler-simulator.sigs.k8s.io/prescore-result: >-
      {"InterPodAffinity":"success","NodeAffinity":"success","NodeNumber":"success","PodTopologySpread":"success","TaintToleration":"success"}      

用於:Pod

此註解記錄了預過濾排程程式外掛的結果,由 https://sigs.k8s.io/kube-scheduler-simulator 使用。

kube-scheduler-simulator.sigs.k8s.io/reserve-result

型別:註解

示例:kube-scheduler-simulator.sigs.k8s.io/reserve-result: '{"VolumeBinding":"success"}'

用於:Pod

此註解記錄了保留排程程式外掛的結果,由 https://sigs.k8s.io/kube-scheduler-simulator 使用。

kube-scheduler-simulator.sigs.k8s.io/result-history

型別:註解

示例:kube-scheduler-simulator.sigs.k8s.io/result-history: '[]'

用於:Pod

此註解記錄了排程程式外掛的所有過去排程結果,由 https://sigs.k8s.io/kube-scheduler-simulator 使用。

kube-scheduler-simulator.sigs.k8s.io/score-result

型別:註解

    kube-scheduler-simulator.sigs.k8s.io/score-result: >-
      {"node-282x7":{"ImageLocality":"0","InterPodAffinity":"0","NodeAffinity":"0","NodeNumber":"0","NodeResourcesBalancedAllocation":"76","NodeResourcesFit":"73","PodTopologySpread":"0","TaintToleration":"0","VolumeBinding":"0"},"node-gp9t4":{"ImageLocality":"0","InterPodAffinity":"0","NodeAffinity":"0","NodeNumber":"0","NodeResourcesBalancedAllocation":"76","NodeResourcesFit":"73","PodTopologySpread":"0","TaintToleration":"0","VolumeBinding":"0"}}      

用於:Pod

此註解記錄了評分排程程式外掛的結果,由 https://sigs.k8s.io/kube-scheduler-simulator 使用。

kube-scheduler-simulator.sigs.k8s.io/selected-node

型別:註解

示例:kube-scheduler-simulator.sigs.k8s.io/selected-node: node-282x7

用於:Pod

此註解記錄了排程週期選擇的節點,由 https://sigs.k8s.io/kube-scheduler-simulator 使用。

kubernetes.io/arch

型別:標籤

示例:kubernetes.io/arch: "amd64"

用於:節點

Kubelet 用 Go 定義的 runtime.GOARCH 填充此值。如果你混合使用 ARM 和 x86 節點,這會很有用。

kubernetes.io/os

型別:標籤

示例:kubernetes.io/os: "linux"

用於:節點、Pod

對於節點,kubelet 用 Go 定義的 runtime.GOOS 填充此值。如果你在叢集中混合使用作業系統(例如:混合使用 Linux 和 Windows 節點),這會很有用。

你也可以在 Pod 上設定此標籤。Kubernetes 允許你為此標籤設定任何值;如果你使用此標籤,你仍應將其設定為此 Pod 實際使用的作業系統的 Go runtime.GOOS 字串。

當 Pod 的 kubernetes.io/os 標籤值與節點上的標籤值不匹配時,節點上的 kubelet 將不接受 Pod。但是,kube-scheduler 不會考慮這一點。另外,如果 Pod 的作業系統與執行該 kubelet 的節點的作業系統不同,則 kubelet 會拒絕執行你已指定 Pod OS 的 Pod。有關更多詳細資訊,請參閱 Pod OS

kubernetes.io/metadata.name

型別:標籤

示例:kubernetes.io/metadata.name: "mynamespace"

用於:名稱空間

Kubernetes API 伺服器(控制平面的一部分)在所有名稱空間上設定此標籤。標籤值設定為名稱空間的名稱。你不能更改此標籤的值。

如果你想使用標籤選擇器定位特定名稱空間,這會很有用。

kubernetes.io/limit-ranger

型別:註解

示例:kubernetes.io/limit-ranger: "LimitRanger plugin set: cpu, memory request for container nginx; cpu, memory limit for container nginx"

用於:Pod

Kubernetes 預設不提供任何資源限制,這意味著除非你明確定義限制,否則你的容器可以消耗無限的 CPU 和記憶體。你可以為 Pod 定義預設請求或預設限制。你可以透過在相關名稱空間中建立 LimitRange 來實現此目的。定義 LimitRange 後部署的 Pod 將應用這些限制。註解 kubernetes.io/limit-ranger 記錄了為 Pod 指定了資源預設值,並且它們已成功應用。有關更多詳細資訊,請閱讀 LimitRanges

kubernetes.io/config.hash

型別:註解

示例:kubernetes.io/config.hash: "df7cc47f8477b6b1226d7d23a904867b"

用於:Pod

當 kubelet 根據給定清單建立靜態 Pod 時,它會將此註解附加到靜態 Pod。註解的值是 Pod 的 UID。請注意,kubelet 還會將 .spec.nodeName 設定為當前節點名稱,就像 Pod 已排程到該節點一樣。

kubernetes.io/config.mirror

型別:註解

示例:kubernetes.io/config.mirror: "df7cc47f8477b6b1226d7d23a904867b"

用於:Pod

對於 kubelet 在節點上建立的靜態 Pod,API 伺服器上會建立一個映象 Pod。kubelet 新增一個註解以指示此 Pod 實際上是映象 Pod。註解值從kubernetes.io/config.hash註解複製,該註解是 Pod 的 UID。

當更新設定此註解的 Pod 時,不能更改或刪除該註解。如果 Pod 沒有此註解,則在 Pod 更新期間不能新增它。

kubernetes.io/config.source

型別:註解

示例:kubernetes.io/config.source: "file"

用於:Pod

此註解由 kubelet 新增,以指示 Pod 的來源。對於靜態 Pod,註解值可以是 filehttp,具體取決於 Pod 清單的位置。對於在 API 伺服器上建立然後排程到當前節點的 Pod,註解值為 api

kubernetes.io/config.seen

型別:註解

示例:kubernetes.io/config.seen: "2023-10-27T04:04:56.011314488Z"

用於:Pod

當 kubelet 第一次看到 Pod 時,它可能會向 Pod 新增此註解,值為 RFC3339 格式的當前時間戳。

addonmanager.kubernetes.io/mode

型別:標籤

示例:addonmanager.kubernetes.io/mode: "Reconcile"

用於:所有物件

要指定如何管理附加元件,你可以使用 addonmanager.kubernetes.io/mode 標籤。此標籤可以有三個值之一:ReconcileEnsureExistsIgnore

  • Reconcile:附加元件資源將定期與預期狀態協調。如果存在任何差異,附加元件管理器將根據需要重新建立、重新配置或刪除資源。如果未指定標籤,這是預設模式。
  • EnsureExists:附加元件資源將僅檢查是否存在,但建立後不會修改。當沒有具有該名稱的資源例項時,附加元件管理器將建立或重新建立資源。
  • Ignore:附加元件資源將被忽略。此模式適用於與附加元件管理器不相容或由另一個控制器管理的附加元件。

有關更多詳細資訊,請參閱 Addon-manager

beta.kubernetes.io/arch(已棄用)

型別:標籤

此標籤已棄用。請改用kubernetes.io/arch

beta.kubernetes.io/os(已棄用)

型別:標籤

此標籤已棄用。請改用kubernetes.io/os

kube-aggregator.kubernetes.io/automanaged

型別:標籤

示例:kube-aggregator.kubernetes.io/automanaged: "onstart"

用於:APIService

kube-apiserver 在 API 伺服器自動建立的任何 APIService 物件上設定此標籤。該標籤標記控制平面應如何管理該 APIService。你不應自行新增、修改或刪除此標籤。

有兩個可能的值

  • onstart:APIService 應在 API 伺服器啟動時協調,但除此之外不應協調。
  • true:API 伺服器應持續協調此 APIService。

service.alpha.kubernetes.io/tolerate-unready-endpoints(已棄用)

型別:註解

用於:StatefulSet

服務上的此註解表示 Endpoints 控制器是否應繼續為未就緒的 Pod 建立 Endpoints。這些服務的 Endpoints 保留其 DNS 記錄,並從 kubelet 啟動 Pod 中的所有容器並將其標記為 Running 的那一刻起,直到 kubelet 停止所有容器並從 API 伺服器刪除 Pod,持續接收來自服務的流量。

autoscaling.alpha.kubernetes.io/behavior(已棄用)

型別:註解

用於:HorizontalPodAutoscaler

此註解在早期 Kubernetes 版本中用於配置 HorizontalPodAutoscaler (HPA) 的擴縮行為。它允許你指定 HPA 應如何向上或向下擴縮 Pod,包括設定穩定視窗和擴縮策略。在任何受支援的 Kubernetes 版本中設定此註解均無效。

kubernetes.io/hostname

型別:標籤

示例:kubernetes.io/hostname: "ip-172-20-114-199.ec2.internal"

用於:節點

Kubelet 用節點的主機名填充此標籤。請注意,主機名可以透過將 --hostname-override 標誌傳遞給 kubelet 從“實際”主機名更改。

此標籤也用作拓撲層次結構的一部分。有關更多資訊,請參閱topology.kubernetes.io/zone

kubernetes.io/change-cause

型別:註解

示例:kubernetes.io/change-cause: "kubectl edit --record deployment foo"

用於:所有物件

此註解是對更改原因的最佳猜測。

當向可能更改物件的 kubectl 命令新增 --record 時,它會被填充。

kubernetes.io/description

型別:註解

示例:kubernetes.io/description: "Description of K8s object."

用於:所有物件

此註解用於描述給定物件的特定行為。

kubernetes.io/enforce-mountable-secrets(已棄用)

型別:註解

示例:kubernetes.io/enforce-mountable-secrets: "true"

用於:ServiceAccount

此註解的值必須為 true 才能生效。當你將此註解設定為 "true" 時,Kubernetes 將對作為此 ServiceAccount 執行的 Pod 強制執行以下規則

  1. 作為卷掛載的 Secret 必須列在 ServiceAccount 的 secrets 欄位中。
  2. 容器(包括 Sidecar 容器和 Init 容器)的 envFrom 中引用的 Secret 也必須列在 ServiceAccount 的 secrets 欄位中。如果 Pod 中的任何容器引用了 ServiceAccount 的 secrets 欄位中未列出的 Secret(即使該引用被標記為 optional),則 Pod 將無法啟動,並會生成指示不合規 Secret 引用的錯誤。
  3. Pod 的 imagePullSecrets 中引用的 Secret 必須存在於 ServiceAccount 的 imagePullSecrets 欄位中,否則 Pod 將無法啟動,並會生成指示不合規映象拉取 Secret 引用的錯誤。

當你建立或更新 Pod 時,將檢查這些規則。如果 Pod 不遵守它們,它將無法啟動,你將看到一條錯誤訊息。如果 Pod 已經在執行並且你將 kubernetes.io/enforce-mountable-secrets 註解更改為 true,或者你編輯關聯的 ServiceAccount 以刪除對 Pod 正在使用的 Secret 的引用,則 Pod 將繼續執行。

node.kubernetes.io/exclude-from-external-load-balancers

型別:標籤

示例:node.kubernetes.io/exclude-from-external-load-balancers

用於:節點

你可以向特定的工作節點新增標籤,以將它們從外部負載均衡器使用的後端伺服器列表中排除。以下命令可用於將工作節點從後端集中的後端伺服器列表中排除

kubectl label nodes <node-name> node.kubernetes.io/exclude-from-external-load-balancers=true

controller.kubernetes.io/pod-deletion-cost

型別:註解

示例:controller.kubernetes.io/pod-deletion-cost: "10"

用於:Pod

此註解用於設定Pod 刪除成本,它允許使用者影響 ReplicaSet 的縮減順序。註解值解析為 int32 型別。

cluster-autoscaler.kubernetes.io/enable-ds-eviction

型別:註解

示例:cluster-autoscaler.kubernetes.io/enable-ds-eviction: "true"

用於:Pod

此註解控制 DaemonSet pod 是否應被 ClusterAutoscaler 驅逐。此註解需要在 DaemonSet 清單中的 DaemonSet pod 上指定。當此註解設定為 "true" 時,即使其他規則通常會阻止驅逐,ClusterAutoscaler 也允許驅逐 DaemonSet Pod。為了禁止 ClusterAutoscaler 驅逐 DaemonSet pod,你可以將此註解設定為 "false" 以用於重要的 DaemonSet pod。如果未設定此註解,則 ClusterAutoscaler 遵循其整體行為(即根據其配置驅逐 DaemonSet)。

kubernetes.io/ingress-bandwidth

型別:註解

示例:kubernetes.io/ingress-bandwidth: 10M

用於:Pod

你可以對 Pod 應用服務質量流量整形,並有效限制其可用頻寬。Pod 的入站流量透過整形排隊的包來有效處理資料。要限制 Pod 的頻寬,請編寫物件定義 JSON 檔案並使用 kubernetes.io/ingress-bandwidth 註解指定資料流量速度。用於指定入站速率的單位是每秒位元,表示為Quantity。例如,10M 表示每秒 10 兆位元。

kubernetes.io/egress-bandwidth

型別:註解

示例:kubernetes.io/egress-bandwidth: 10M

用於:Pod

Pod 的出站流量透過策略進行處理,該策略簡單地丟棄超過配置速率的包。你對 Pod 設定的限制不會影響其他 Pod 的頻寬。要限制 Pod 的頻寬,請編寫物件定義 JSON 檔案並使用 kubernetes.io/egress-bandwidth 註解指定資料流量速度。用於指定出站速率的單位是每秒位元,表示為Quantity。例如,10M 表示每秒 10 兆位元。

beta.kubernetes.io/instance-type(已棄用)

型別:標籤

node.kubernetes.io/instance-type

型別:標籤

示例:node.kubernetes.io/instance-type: "m3.medium"

用於:節點

Kubelet 用雲提供商定義的例項型別填充此值。僅當你使用雲提供商時才會設定此值。此設定在你想將某些工作負載定位到某些例項型別時很有用,但通常你希望依賴 Kubernetes 排程程式執行基於資源的排程。你應該旨在基於屬性而不是例項型別進行排程(例如:需要 GPU,而不是需要 g2.2xlarge)。

failure-domain.beta.kubernetes.io/region(已棄用)

型別:標籤

failure-domain.beta.kubernetes.io/zone(已棄用)

型別:標籤

pv.kubernetes.io/bind-completed

型別:註解

示例:pv.kubernetes.io/bind-completed: "yes"

用於:PersistentVolumeClaim

當此註解在 PersistentVolumeClaim (PVC) 上設定時,表示 PVC 的生命週期已透過初始繫結設定。如果存在此資訊,則會改變控制平面解釋 PVC 物件狀態的方式。此註解的值對 Kubernetes 來說無關緊要。

pv.kubernetes.io/bound-by-controller

型別:註解

示例:pv.kubernetes.io/bound-by-controller: "yes"

用於:PersistentVolume、PersistentVolumeClaim

如果在 PersistentVolume 或 PersistentVolumeClaim 上設定了此註解,則表示儲存繫結(PersistentVolume → PersistentVolumeClaim,或 PersistentVolumeClaim → PersistentVolume)是由控制器安裝的。如果未設定註解,並且存在儲存繫結,則缺少該註解表示繫結是手動完成的。此註解的值無關緊要。

pv.kubernetes.io/provisioned-by

型別:註解

示例:pv.kubernetes.io/provisioned-by: "kubernetes.io/rbd"

用於:PersistentVolume

此註解新增到由 Kubernetes 動態提供的 PersistentVolume (PV)。其值是建立卷的卷外掛的名稱。它既為使用者(顯示 PV 的來源)也為 Kubernetes(在其決策中識別動態提供的 PV)服務。

pv.kubernetes.io/migrated-to

型別:註解

示例:pv.kubernetes.io/migrated-to: pd.csi.storage.gke.io

用於:PersistentVolume、PersistentVolumeClaim

它新增到 PersistentVolume (PV) 和 PersistentVolumeClaim (PVC),這些卷應透過 CSIMigration 功能門控由其相應的 CSI 驅動程式動態提供/刪除。設定此註解後,Kubernetes 元件將“待命”,external-provisioner 將對物件進行操作。

statefulset.kubernetes.io/pod-name

型別:標籤

示例:statefulset.kubernetes.io/pod-name: "mystatefulset-7"

用於:Pod

當 StatefulSet 控制器為 StatefulSet 建立 Pod 時,控制平面會在該 Pod 上設定此標籤。標籤的值是正在建立的 Pod 的名稱。

有關更多詳細資訊,請參閱 StatefulSet 主題中的Pod 名稱標籤

scheduler.alpha.kubernetes.io/node-selector

型別:註解

示例:scheduler.alpha.kubernetes.io/node-selector: "name-of-node-selector"

用於:名稱空間

PodNodeSelector 使用此註解鍵將節點選擇器分配給名稱空間中的 Pod。

topology.kubernetes.io/region

型別:標籤

示例:topology.kubernetes.io/region: "us-east-1"

用於:節點、PersistentVolume

請參閱topology.kubernetes.io/zone

topology.kubernetes.io/zone

型別:標籤

示例:topology.kubernetes.io/zone: "us-east-1c"

用於:節點、PersistentVolume

在節點上kubelet 或外部 cloud-controller-manager 用雲提供商的資訊填充此值。僅當你使用雲提供商時才會設定此值。但是,如果這在你的拓撲中合理,你可以考慮在節點上設定此值。

在 PersistentVolume 上:拓撲感知卷提供者將自動在 PersistentVolume 上設定節點親和性約束。

區域表示邏輯故障域。Kubernetes 叢集通常跨多個區域以提高可用性。雖然區域的確切定義留給基礎設施實現,但區域的常見屬性包括區域內網路延遲極低、區域內網路流量無成本以及與其他區域的故障獨立性。例如,區域內的節點可能共享網路交換機,但不同區域的節點不應共享。

區域表示一個更大的域,由一個或多個可用區組成。Kubernetes 叢集很少跨多個區域,雖然區域或區域的確切定義留給基礎設施實現,但區域的常見屬性包括它們之間比區域內更高的網路延遲、它們之間網路流量的非零成本以及與其他區域或區域的故障獨立性。例如,區域內的節點可能共享電源基礎設施(例如 UPS 或發電機),但不同區域的節點通常不會。

Kubernetes 對可用區和區域的結構做了一些假設

  1. 區域和可用區是分層的:可用區是區域的嚴格子集,並且沒有可用區可以在 2 個區域中
  2. 可用區名稱在區域之間是唯一的;例如,區域“africa-east-1”可能由可用區“africa-east-1a”和“africa-east-1b”組成

應該可以安全地假設拓撲標籤不會改變。儘管標籤是嚴格可變的,但它們的消費者可以假設給定節點不會在不被銷燬和重新建立的情況下在可用區之間移動。

Kubernetes 可以透過多種方式使用此資訊。例如,排程程式會自動嘗試將 ReplicaSet 中的 Pod 分散到單區域叢集中的節點上(以減少節點故障的影響,請參閱kubernetes.io/hostname)。對於多區域叢集,此分散行為也適用於區域(以減少區域故障的影響)。這是透過 SelectorSpreadPriority 實現的。

SelectorSpreadPriority 是一種盡力而為的放置。如果叢集中的區域是異構的(例如:不同數量的節點、不同型別的節點或不同的 Pod 資源要求),此放置可能會阻止 Pod 在區域之間的均勻分佈。如果需要,你可以使用同構區域(相同數量和型別的節點)來降低不均勻分佈的可能性。

排程程式(透過 VolumeZonePredicate 謂詞)還將確保宣告給定卷的 Pod 僅放置在與該卷相同的區域中。卷不能跨區域附加。

如果 PersistentVolumeLabel 不支援 PersistentVolume 的自動標記,你應該考慮手動新增標籤(或新增對 PersistentVolumeLabel 的支援)。使用 PersistentVolumeLabel,排程程式會阻止 Pod 掛載不同區域中的卷。如果你的基礎設施沒有此約束,則根本不需要向卷新增區域標籤。

volume.beta.kubernetes.io/storage-provisioner(已棄用)

型別:註解

示例:volume.beta.kubernetes.io/storage-provisioner: "k8s.io/minikube-hostpath"

用於:PersistentVolumeClaim

此註解自 v1.23 起已棄用。請參閱volume.kubernetes.io/storage-provisioner

volume.beta.kubernetes.io/storage-class(已棄用)

型別:註解

示例:volume.beta.kubernetes.io/storage-class: "example-class"

用於:PersistentVolume、PersistentVolumeClaim

此註解可用於 PersistentVolume (PV) 或 PersistentVolumeClaim (PVC),以指定 StorageClass 的名稱。當 storageClassName 屬性和 volume.beta.kubernetes.io/storage-class 註解都指定時,註解 volume.beta.kubernetes.io/storage-class 優先於 storageClassName 屬性。

此註解已棄用。請改用為 PersistentVolumeClaim 或 PersistentVolume 設定storageClassName 欄位

volume.beta.kubernetes.io/mount-options(已棄用)

型別:註解

示例:volume.beta.kubernetes.io/mount-options: "ro,soft"

用於:PersistentVolume

Kubernetes 管理員可以指定當 PersistentVolume 掛載到節點時額外的掛載選項

volume.kubernetes.io/storage-provisioner

型別:註解

用於:PersistentVolumeClaim

此註解新增到應動態提供的 PVC。其值是應為此 PVC 提供卷的卷外掛的名稱。

volume.kubernetes.io/selected-node

型別:註解

用於:PersistentVolumeClaim

此註解新增到由排程程式觸發動態提供的 PVC。其值是所選節點的名稱。

volumes.kubernetes.io/controller-managed-attach-detach

型別:註解

用於:節點

如果節點具有註解 volumes.kubernetes.io/controller-managed-attach-detach,則其儲存附加和分離操作由 volume attach/detach 控制器管理。

註解的值不重要。

node.kubernetes.io/windows-build

型別:標籤

示例:node.kubernetes.io/windows-build: "10.0.17763"

用於:節點

當 kubelet 在 Microsoft Windows 上執行時,它會自動標記其節點以記錄正在使用的 Windows Server 版本。

標籤的值採用“MajorVersion.MinorVersion.BuildNumber”格式。

storage.alpha.kubernetes.io/migrated-plugins

型別:註解

示例:storage.alpha.kubernetes.io/migrated-plugins: "kubernetes.io/cinder"

用於:CSINode(擴充套件 API)

此註解自動新增到對映到安裝 CSIDriver 的節點的 CSINode 物件。此註解顯示已遷移外掛的樹內外掛名稱。其值取決於叢集的樹內雲提供商儲存型別。

例如,如果樹內雲提供商儲存型別是 CSIMigrationvSphere,則節點的 CSINodes 例項應更新為:storage.alpha.kubernetes.io/migrated-plugins: "kubernetes.io/vsphere-volume"

service.kubernetes.io/headless

型別:標籤

示例:service.kubernetes.io/headless: ""

用於:Endpoints

當所屬 Service 是無頭 Service 時,控制平面會將此標籤新增到 Endpoints 物件。要了解更多資訊,請閱讀無頭服務

service.kubernetes.io/topology-aware-hints(已棄用)

示例:service.kubernetes.io/topology-aware-hints: "Auto"

用於:Service

此註解用於在服務上啟用拓撲感知提示。拓撲感知提示後來更名為:此概念現在稱為拓撲感知路由。在服務上將註解設定為 Auto,配置 Kubernetes 控制平面以在與該服務關聯的 EndpointSlices 上新增拓撲提示。你還可以顯式將註解設定為 Disabled

如果你執行的 Kubernetes 版本早於 1.34,請查閱該 Kubernetes 版本的文件以瞭解拓撲感知路由在該版本中的工作方式。

此註解沒有其他有效值。如果你不希望服務具有拓撲感知提示,請不要新增此註解。

service.kubernetes.io/topology-mode

型別:註解

示例:service.kubernetes.io/topology-mode: Auto

用於:Service

此註解提供了一種定義服務如何處理網路拓撲的方法;例如,你可以配置服務,以便 Kubernetes 優先將客戶端和伺服器之間的流量保持在單個拓撲區域內。在某些情況下,這有助於降低成本或提高網路效能。

有關更多詳細資訊,請參閱拓撲感知路由

kubernetes.io/service-name

型別:標籤

示例:kubernetes.io/service-name: "my-website"

用於:EndpointSlice

Kubernetes 使用此標籤將EndpointSlices服務關聯起來。

此標籤記錄了 EndpointSlice 支援的服務的名稱。所有 EndpointSlices 都應將此標籤設定為其關聯服務的名稱。

kubernetes.io/service-account.name

型別:註解

示例:kubernetes.io/service-account.name: "sa-name"

用於:Secret

此註解記錄了令牌(儲存在 kubernetes.io/service-account-token 型別的 Secret 中)表示的 ServiceAccount 的唯一 ID

kubernetes.io/service-account.uid

型別:註解

示例:kubernetes.io/service-account.uid: da68f9c6-9d26-11e7-b84e-002dc52800da

用於:Secret

此註解記錄了令牌(儲存在 kubernetes.io/service-account-token 型別的 Secret 中)表示的 ServiceAccount 的唯一 ID

kubernetes.io/legacy-token-last-used

型別:標籤

示例:kubernetes.io/legacy-token-last-used: 2022-10-24

用於:Secret

控制平面僅將此標籤新增到型別為 kubernetes.io/service-account-token 的 Secret。此標籤的值記錄了控制平面上次看到客戶端使用服務帳戶令牌進行身份驗證的請求的日期(ISO 8601 格式,UTC 時區)。

如果舊版令牌在叢集獲得該功能之前(在 Kubernetes v1.26 中新增)最後使用,則不設定該標籤。

kubernetes.io/legacy-token-invalid-since

型別:標籤

示例:kubernetes.io/legacy-token-invalid-since: 2023-10-27

用於:Secret

控制平面自動將此標籤新增到型別為 kubernetes.io/service-account-token 的自動生成 Secret。此標籤將基於 Secret 的令牌標記為無效,不能用於身份驗證。此標籤的值記錄了控制平面檢測到自動生成 Secret 在指定持續時間(預設為一年)內未使用時的日期(ISO 8601 格式,UTC 時區)。

endpoints.kubernetes.io/managed-by(已棄用)

型別:標籤

示例:endpoints.kubernetes.io/managed-by: endpoint-controller

用於:Endpoints

此標籤內部用於標記由 Kubernetes 建立的 Endpoints 物件(與使用者或外部控制器建立的 Endpoints 相對)。

endpointslice.kubernetes.io/managed-by

型別:標籤

示例:endpointslice.kubernetes.io/managed-by: endpointslice-controller.k8s.io

用於:EndpointSlices

此標籤用於標識管理 EndpointSlice 的控制器或實體。此標籤旨在使同一叢集中不同的 EndpointSlice 物件能夠由不同的控制器或實體管理。值 endpointslice-controller.k8s.io 表示由 Kubernetes 自動為具有選擇器的 Service 建立的 EndpointSlice 物件。

endpointslice.kubernetes.io/skip-mirror

型別:標籤

示例:endpointslice.kubernetes.io/skip-mirror: "true"

用於:Endpoints

可以在 Endpoints 資源上將此標籤設定為 "true",以指示 EndpointSliceMirroring 控制器不應將此資源與 EndpointSlice 物件進行映象。

service.kubernetes.io/service-proxy-name

型別:標籤

示例:service.kubernetes.io/service-proxy-name: "foo-bar"

用於:Service

為該標籤設定值會告訴 kube-proxy 忽略此服務進行代理。這允許為此服務使用替代代理實現(例如,執行以自己的方式管理 nftables 的 DaemonSet)。使用此欄位可以同時啟用多個替代代理實現,例如,為每個替代代理實現設定一個唯一值以負責其各自的服務。

experimental.windows.kubernetes.io/isolation-type (已棄用)

型別:註解

示例:experimental.windows.kubernetes.io/isolation-type: "hyperv"

用於:Pod

此註解用於透過 Hyper-V 隔離執行 Windows 容器。

ingressclass.kubernetes.io/is-default-class

型別:註解

示例:ingressclass.kubernetes.io/is-default-class: "true"

用於:IngressClass

當 IngressClass 資源將此註解設定為 "true" 時,沒有指定類的新的 Ingress 資源將被分配此預設類。

nginx.ingress.kubernetes.io/configuration-snippet

型別:註解

示例:nginx.ingress.kubernetes.io/configuration-snippet: " more_set_headers \"Request-Id: $req_id\";\nmore_set_headers \"Example: 42\";\n"

用於:Ingress

你可以使用此註解在使用 NGINX Ingress Controller 的 Ingress 上設定額外的配置。預設情況下,從 ingress controller 1.9.0 版本開始,configuration-snippet 註解會被忽略。必須顯式啟用 NGINX ingress controller 設定 allow-snippet-annotations. 才能使用此註解。在多租戶叢集中啟用此註解可能很危險,因為它可能導致許可權有限的人員能夠檢索叢集中的所有 Secret。

kubernetes.io/ingress.class (已棄用)

型別:註解

用於:Ingress

kubernetes.io/cluster-service (已棄用)

型別:標籤

示例:kubernetes.io/cluster-service: "true"

用於:Service

如果值為 true,此標籤表示該 Service 為叢集提供服務。當你執行 kubectl cluster-info 時,該工具會查詢設定為 true 的 Services。

但是,在任何 Service 上設定此標籤都已棄用。

storageclass.kubernetes.io/is-default-class

型別:註解

示例:storageclass.kubernetes.io/is-default-class: "true"

用於:StorageClass

當單個 StorageClass 資源將此註解設定為 "true" 時,沒有指定類的新 PersistentVolumeClaim 資源將被分配此預設類。

alpha.kubernetes.io/provided-node-ip (alpha)

型別:註解

示例:alpha.kubernetes.io/provided-node-ip: "10.0.0.1"

用於:節點

kubelet 可以在 Node 上設定此註解,以表示其配置的 IPv4 和/或 IPv6 地址。

當 kubelet 啟動時設定了 --cloud-provider 標誌(包括外部和舊版樹內雲提供商),它會在 Node 上設定此註解,以表示從命令列標誌(--node-ip)設定的 IP 地址。此 IP 由 cloud-controller-manager 驗證為對雲提供商有效。

batch.kubernetes.io/job-completion-index

型別:註解、標籤

示例:batch.kubernetes.io/job-completion-index: "3"

用於:Pod

kube-controller-manager 中的 Job 控制器將其設定為使用索引完成模式建立的 Pod 的標籤和註解。

請注意,必須啟用 PodIndexLabel 功能門,才能將其作為 Pod **標籤**新增,否則它將只是一個註解。

batch.kubernetes.io/cronjob-scheduled-timestamp

型別:註解

示例:batch.kubernetes.io/cronjob-scheduled-timestamp: "2016-05-19T03:00:00-07:00"

用於:由 CronJobs 控制的 Jobs 和 Pods

當 Job 是 CronJob 的一部分時,此註解用於記錄 Job 的原始(預期)建立時間戳。控制平面將該時間戳設定為 RFC3339 格式。如果 Job 屬於指定了時區的 CronJob,則時間戳在該時區。否則,時間戳以控制器管理器的本地時間為準。

kubectl.kubernetes.io/default-container

型別:註解

示例:kubectl.kubernetes.io/default-container: "front-end-app"

註解的值是此 Pod 的預設容器名稱。例如,不帶 -c--container 標誌的 kubectl logskubectl exec 將使用此預設容器。

kubectl.kubernetes.io/default-logs-container (已棄用)

型別:註解

示例:kubectl.kubernetes.io/default-logs-container: "front-end-app"

註解的值是此 Pod 的預設日誌容器名稱。例如,不帶 -c--container 標誌的 kubectl logs 將使用此預設容器。

kubectl.kubernetes.io/last-applied-configuration

型別:註解

示例:見以下片段

    kubectl.kubernetes.io/last-applied-configuration: >
      {"apiVersion":"apps/v1","kind":"Deployment","metadata":{"annotations":{},"name":"example","namespace":"default"},"spec":{"selector":{"matchLabels":{"app.kubernetes.io/name":foo}},"template":{"metadata":{"labels":{"app.kubernetes.io/name":"foo"}},"spec":{"containers":[{"image":"container-registry.example/foo-bar:1.42","name":"foo-bar","ports":[{"containerPort":42}]}]}}}}      

用於:所有物件

kubectl 命令列工具使用此註解作為跟蹤更改的舊機制。該機制已被Server-side Apply取代。

kubectl.kubernetes.io/restartedAt

型別:註解

示例:kubectl.kubernetes.io/restartedAt: "2024-06-21T17:27:41Z"

用於:Deployment、ReplicaSet、StatefulSet、DaemonSet、Pod

此註解包含資源(Deployment、ReplicaSet、StatefulSet 或 DaemonSet)的最新重啟時間,其中 kubectl 觸發了回滾以強制建立新的 Pod。命令 kubectl rollout restart <RESOURCE> 透過使用此註解修補所有資源 Pod 的模板元資料來觸發重啟。在上述示例中,最新重啟時間顯示為 2024 年 6 月 21 日 17:27:41 UTC。

你不應假定此註解表示最新更新的日期/時間;自上次手動觸發回滾以來,可能已發生單獨的更改。

如果你手動在 Pod 上設定此註解,則不會發生任何事情。重啟的副作用來自工作負載管理和 Pod 模板的工作方式。

endpoints.kubernetes.io/over-capacity

型別:註解

示例:endpoints.kubernetes.io/over-capacity:truncated

用於:Endpoints

控制平面將此註解新增到 Endpoints 物件,如果關聯的Service 具有超過 1000 個後端端點。此註解表示 Endpoints 物件已超容量,並且端點數量已截斷為 1000。

如果後端端點數量低於 1000,控制平面將移除此註解。

endpoints.kubernetes.io/last-change-trigger-time

型別:註解

示例:endpoints.kubernetes.io/last-change-trigger-time: "2023-07-20T04:45:21Z"

用於:Endpoints

此註解設定為表示時間戳的 Endpoints 物件(時間戳以 RFC 3339 日期時間字串格式儲存。例如,'2018-10-22T19:32:52.1Z')。這是 Pod 或 Service 物件中導致 Endpoints 物件更改的最後一次更改的時間戳。

control-plane.alpha.kubernetes.io/leader (已棄用)

型別:註解

示例:control-plane.alpha.kubernetes.io/leader={"holderIdentity":"controller-0","leaseDurationSeconds":15,"acquireTime":"2023-01-19T13:12:57Z","renewTime":"2023-01-19T13:13:54Z","leaderTransitions":1}

用於:Endpoints

控制平面之前在 Endpoints 物件上設定了註解。此註解提供了以下詳細資訊:

  • 誰是當前的領導者。
  • 獲得當前領導權的時間。
  • 租約(領導權)的持續時間(秒)。
  • 當前租約(當前領導權)應續訂的時間。
  • 過去發生的領導權轉換次數。

Kubernetes 現在使用租約來管理 Kubernetes 控制平面的領導者分配。

batch.kubernetes.io/job-tracking (已棄用)

型別:註解

示例:batch.kubernetes.io/job-tracking: ""

用於:Jobs

Job 上此註解的存在曾表示控制平面正在使用終結器跟蹤 Job 狀態。新增或刪除此註解不再有效(Kubernetes v1.27 及更高版本)。所有 Job 都使用終結器進行跟蹤。

job-name (已棄用)

型別:標籤

示例:job-name: "pi"

用於:由 Jobs 控制的 Jobs 和 Pods

controller-uid (已棄用)

型別:標籤

示例:controller-uid: "$UID"

用於:由 Jobs 控制的 Jobs 和 Pods

batch.kubernetes.io/job-name

型別:標籤

示例:batch.kubernetes.io/job-name: "pi"

用於:由 Jobs 控制的 Jobs 和 Pods

此標籤作為一種使用者友好的方式,用於獲取與 Job 對應的 Pod。job-name 來自 Job 的 name,並提供了一種簡單的方式來獲取與 Job 對應的 Pod。

batch.kubernetes.io/controller-uid

型別:標籤

示例:batch.kubernetes.io/controller-uid: "$UID"

用於:由 Jobs 控制的 Jobs 和 Pods

此標籤作為一種程式設計方式,用於獲取與 Job 對應的所有 Pod。
controller-uid 是一個唯一的識別符號,它設定在 selector 欄位中,以便 Job 控制器可以獲取所有對應的 Pod。

scheduler.alpha.kubernetes.io/defaultTolerations

型別:註解

示例:scheduler.alpha.kubernetes.io/defaultTolerations: '[{"operator": "Equal", "value": "value1", "effect": "NoSchedule", "key": "dedicated-node"}]'

用於:名稱空間

此註解要求啟用 PodTolerationRestriction 准入控制器。此註解鍵允許將容忍度分配給名稱空間,並且在該名稱空間中建立的任何新 Pod 都將新增這些容忍度。

scheduler.alpha.kubernetes.io/tolerationsWhitelist

型別:註解

示例:scheduler.alpha.kubernetes.io/tolerationsWhitelist: '[{"operator": "Exists", "effect": "NoSchedule", "key": "dedicated-node"}]'

用於:名稱空間

此註解僅在啟用(Alpha)PodTolerationRestriction 准入控制器時有用。註解的值是一個 JSON 文件,它定義了其註解的名稱空間允許的容忍度列表。當你建立 Pod 或修改其容忍度時,API 伺服器會檢查容忍度以檢視它們是否在允許列表中。只有在檢查成功時才允許 Pod。

scheduler.alpha.kubernetes.io/preferAvoidPods (已棄用)

型別:註解

用於:節點

此註解需要啟用 NodePreferAvoidPods 排程外掛。該外掛自 Kubernetes 1.22 起已棄用。請改用 汙點和容忍度

node.kubernetes.io/not-ready

型別:汙點

示例:node.kubernetes.io/not-ready: "NoExecute"

用於:節點

節點控制器透過監視節點的健康狀況來檢測節點是否就緒,並相應地新增或移除此汙點。

node.kubernetes.io/unreachable

型別:汙點

示例:node.kubernetes.io/unreachable: "NoExecute"

用於:節點

節點條件 ReadyUnknown 時,節點控制器將此汙點新增到節點。

node.kubernetes.io/unschedulable

型別:汙點

示例:node.kubernetes.io/unschedulable: "NoSchedule"

用於:節點

在初始化節點時,為了避免競爭條件,將向節點新增此汙點。

node.kubernetes.io/memory-pressure

型別:汙點

示例:node.kubernetes.io/memory-pressure: "NoSchedule"

用於:節點

kubelet 根據在節點上觀察到的 memory.availableallocatableMemory.available 來檢測記憶體壓力。然後將觀察到的值與可在 kubelet 上設定的相應閾值進行比較,以確定是否應新增/移除節點條件和汙點。

node.kubernetes.io/disk-pressure

型別:汙點

示例:node.kubernetes.io/disk-pressure :"NoSchedule"

用於:節點

kubelet 根據在節點上觀察到的 imagefs.availableimagefs.inodesFreenodefs.availablenodefs.inodesFree(僅限 Linux)來檢測磁碟壓力。然後將觀察到的值與可在 kubelet 上設定的相應閾值進行比較,以確定是否應新增/移除節點條件和汙點。

node.kubernetes.io/network-unavailable

型別:汙點

示例:node.kubernetes.io/network-unavailable: "NoSchedule"

用於:節點

當使用的雲提供商指示需要額外的網路配置時,kubelet 最初會設定此項。只有當雲上的路由配置正確時,雲提供商才會移除此汙點。

node.kubernetes.io/pid-pressure

型別:汙點

示例:node.kubernetes.io/pid-pressure: "NoSchedule"

用於:節點

kubelet 檢查 /proc/sys/kernel/pid_max 的大小與 Kubernetes 在節點上消耗的 PID 之間的差值,以獲取可用 PID 的數量,該數量被稱為 pid.available 指標。然後將該指標與可在 kubelet 上設定的相應閾值進行比較,以確定是否應新增/移除節點條件和汙點。

node.kubernetes.io/out-of-service

型別:汙點

示例:node.kubernetes.io/out-of-service:NoExecute

用於:節點

使用者可以手動向節點新增此汙點,將其標記為“服務中斷”。如果節點被標記為“服務中斷”並帶有此汙點,則如果節點上沒有匹配的容忍度,Pod 將被強制刪除,並且終止在該節點上的 Pod 的卷分離操作將立即發生。這使得服務中斷節點上的 Pod 能夠快速在另一個節點上恢復。

node.cloudprovider.kubernetes.io/uninitialized

型別:汙點

示例:node.cloudprovider.kubernetes.io/uninitialized: "NoSchedule"

用於:節點

當 kubelet 使用“外部”雲提供商啟動時,此汙點會設定在節點上,將其標記為不可用,直到雲控制器管理器的控制器初始化此節點,然後移除該汙點。

node.cloudprovider.kubernetes.io/shutdown

型別:汙點

示例:node.cloudprovider.kubernetes.io/shutdown: "NoSchedule"

用於:節點

如果節點處於雲提供商指定的關機狀態,則該節點將相應地被 node.cloudprovider.kubernetes.io/shutdown 汙點標記,汙點效果為 NoSchedule

feature.node.kubernetes.io/*

型別:標籤

示例:feature.node.kubernetes.io/network-sriov.capable: "true"

用於:節點

這些標籤由節點特性發現 (NFD) 元件使用,以在節點上宣傳特性。所有內建標籤都使用 feature.node.kubernetes.io 標籤名稱空間,並具有 feature.node.kubernetes.io/<feature-name>: "true" 格式。NFD 有許多擴充套件點用於建立供應商和應用程式特定的標籤。有關詳細資訊,請參閱自定義指南

nfd.node.kubernetes.io/master.version

型別:註解

示例:nfd.node.kubernetes.io/master.version: "v0.6.0"

用於:節點

對於排程了節點特性發現 (NFD) master 的節點,此註解記錄 NFD master 的版本。它僅用於資訊目的。

nfd.node.kubernetes.io/worker.version

型別:註解

示例:nfd.node.kubernetes.io/worker.version: "v0.4.0"

用於:節點

此註解記錄在節點上執行的節點特性發現 worker 的版本。它僅用於資訊目的。

nfd.node.kubernetes.io/feature-labels

型別:註解

示例:nfd.node.kubernetes.io/feature-labels: "cpu-cpuid.ADX,cpu-cpuid.AESNI,cpu-hardware_multithreading,kernel-version.full"

用於:節點

此註解記錄由 節點特性發現 (NFD) 管理的以逗號分隔的節點特性標籤列表。NFD 將此用於內部機制。你不應自行編輯此註解。

nfd.node.kubernetes.io/extended-resources

型別:註解

示例:nfd.node.kubernetes.io/extended-resources: "accelerator.acme.example/q500,example.com/coprocessor-fx5"

用於:節點

此註解記錄由 節點特性發現 (NFD) 管理的以逗號分隔的擴充套件資源列表。NFD 將此用於內部機制。你不應自行編輯此註解。

nfd.node.kubernetes.io/node-name

型別:標籤

示例:nfd.node.kubernetes.io/node-name: node-1

用於:節點

它指定 NodeFeature 物件所針對的節點。NodeFeature 物件的建立者必須設定此標籤,並且物件的使用者應該使用此標籤來過濾為特定節點指定的特性。

service.beta.kubernetes.io/aws-load-balancer-access-log-emit-interval (beta)

示例:service.beta.kubernetes.io/aws-load-balancer-access-log-emit-interval: "5"

用於:Service

雲控制器管理器與 AWS 彈性負載均衡的整合根據此註解配置服務的負載均衡器。該值確定負載均衡器寫入日誌條目的頻率。例如,如果將值設定為 5,則日誌寫入每 5 秒發生一次。

service.beta.kubernetes.io/aws-load-balancer-access-log-enabled (beta)

示例:service.beta.kubernetes.io/aws-load-balancer-access-log-enabled: "false"

用於:Service

雲控制器管理器與 AWS 彈性負載均衡的整合根據此註解配置服務的負載均衡器。如果將註解設定為“true”,則啟用訪問日誌記錄。

service.beta.kubernetes.io/aws-load-balancer-access-log-s3-bucket-name (beta)

示例:service.beta.kubernetes.io/aws-load-balancer-access-log-enabled: example

用於:Service

雲控制器管理器與 AWS 彈性負載均衡的整合根據此註解配置服務的負載均衡器。負載均衡器將日誌寫入你指定的名稱的 S3 儲存桶。

service.beta.kubernetes.io/aws-load-balancer-access-log-s3-bucket-prefix (beta)

示例:service.beta.kubernetes.io/aws-load-balancer-access-log-enabled: "/example"

用於:Service

雲控制器管理器與 AWS 彈性負載均衡的整合根據此註解配置服務的負載均衡器。負載均衡器使用你指定的帶字首的日誌物件寫入日誌。

service.beta.kubernetes.io/aws-load-balancer-additional-resource-tags (beta)

示例:service.beta.kubernetes.io/aws-load-balancer-additional-resource-tags: "Environment=demo,Project=example"

用於:Service

雲控制器管理器與 AWS 彈性負載均衡的整合根據此註解值中的逗號分隔的鍵/值對為負載均衡器配置標籤(AWS 概念)。

service.beta.kubernetes.io/aws-load-balancer-alpn-policy (beta)

示例:service.beta.kubernetes.io/aws-load-balancer-alpn-policy: HTTP2Optional

用於:Service

AWS 負載均衡器控制器使用此註解。請參閱 AWS 負載均衡器控制器文件中的註解

service.beta.kubernetes.io/aws-load-balancer-attributes (beta)

示例:service.beta.kubernetes.io/aws-load-balancer-attributes: "deletion_protection.enabled=true"

用於:Service

AWS 負載均衡器控制器使用此註解。請參閱 AWS 負載均衡器控制器文件中的註解

service.beta.kubernetes.io/aws-load-balancer-backend-protocol (beta)

示例:service.beta.kubernetes.io/aws-load-balancer-backend-protocol: tcp

用於:Service

雲控制器管理器與 AWS 彈性負載均衡的整合根據此註解的值配置負載均衡器偵聽器。

service.beta.kubernetes.io/aws-load-balancer-connection-draining-enabled (beta)

示例:service.beta.kubernetes.io/aws-load-balancer-connection-draining-enabled: "false"

用於:Service

雲控制器管理器與 AWS 彈性負載均衡的整合根據此註解配置負載均衡器。負載均衡器的連線耗盡設定取決於你設定的值。

service.beta.kubernetes.io/aws-load-balancer-connection-draining-timeout (beta)

示例:service.beta.kubernetes.io/aws-load-balancer-connection-draining-timeout: "60"

用於:Service

如果你為 type: LoadBalancer 的 Service 配置了連線耗盡,並且使用 AWS 雲,則整合會根據此註解配置耗盡週期。你設定的值決定了耗盡超時時間(秒)。

service.beta.kubernetes.io/aws-load-balancer-ip-address-type (beta)

示例:service.beta.kubernetes.io/aws-load-balancer-ip-address-type: ipv4

用於:Service

AWS 負載均衡器控制器使用此註解。請參閱 AWS 負載均衡器控制器文件中的註解

service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout (beta)

示例:service.beta.kubernetes.io/aws-load-balancer-connection-idle-timeout: "60"

用於:Service

雲控制器管理器與 AWS 彈性負載均衡的整合根據此註解配置負載均衡器。負載均衡器具有配置的空閒超時時間(秒),適用於其連線。如果在空閒超時時間過後沒有傳送或接收資料,負載均衡器將關閉連線。

service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled (beta)

示例:service.beta.kubernetes.io/aws-load-balancer-cross-zone-load-balancing-enabled: "true"

用於:Service

雲控制器管理器與 AWS 彈性負載均衡的整合根據此註解配置負載均衡器。如果將此註解設定為“true”,則每個負載均衡器節點會將請求均勻地分佈到所有啟用的可用區中的註冊目標。如果停用跨區域負載均衡,則每個負載均衡器節點僅將其請求均勻地分佈到其可用區中的註冊目標。

service.beta.kubernetes.io/aws-load-balancer-eip-allocations (beta)

示例:service.beta.kubernetes.io/aws-load-balancer-eip-allocations: "eipalloc-01bcdef23bcdef456,eipalloc-def1234abc4567890"

用於:Service

雲控制器管理器與 AWS 彈性負載均衡的整合根據此註解配置負載均衡器。該值是彈性 IP 地址分配 ID 的逗號分隔列表。

此註解僅與 type: LoadBalancer 的 Service 相關,其中負載均衡器是 AWS 網路負載均衡器。

service.beta.kubernetes.io/aws-load-balancer-extra-security-groups (beta)

示例:service.beta.kubernetes.io/aws-load-balancer-extra-security-groups: "sg-12abcd3456,sg-34dcba6543"

用於:Service

雲控制器管理器與 AWS 彈性負載均衡的整合根據此註解配置負載均衡器。註解值是為負載均衡器配置的額外 AWS VPC 安全組的逗號分隔列表。

service.beta.kubernetes.io/aws-load-balancer-healthcheck-healthy-threshold (beta)

示例:service.beta.kubernetes.io/aws-load-balancer-healthcheck-healthy-threshold: "3"

用於:Service

雲控制器管理器與 AWS 彈性負載均衡的整合根據此註解配置負載均衡器。註解值指定後端被認為對流量健康的連續成功健康檢查的數量。

service.beta.kubernetes.io/aws-load-balancer-healthcheck-interval (beta)

示例:service.beta.kubernetes.io/aws-load-balancer-healthcheck-interval: "30"

用於:Service

雲控制器管理器與 AWS 彈性負載均衡的整合根據此註解配置負載均衡器。註解值指定負載均衡器進行健康檢查探測之間的時間間隔(秒)。

service.beta.kubernetes.io/aws-load-balancer-healthcheck-path (beta)

示例:service.beta.kubernetes.io/aws-load-balancer-healthcheck-path: /healthcheck

用於:Service

雲控制器管理器與 AWS 彈性負載均衡的整合根據此註解配置負載均衡器。註解值確定用於 HTTP 健康檢查的 URL 的路徑部分。

service.beta.kubernetes.io/aws-load-balancer-healthcheck-port (beta)

示例:service.beta.kubernetes.io/aws-load-balancer-healthcheck-port: "24"

用於:Service

雲控制器管理器與 AWS 彈性負載均衡的整合根據此註解配置負載均衡器。註解值確定負載均衡器在執行健康檢查時連線的埠。

service.beta.kubernetes.io/aws-load-balancer-healthcheck-protocol (beta)

示例:service.beta.kubernetes.io/aws-load-balancer-healthcheck-protocol: TCP

用於:Service

雲控制器管理器與 AWS 彈性負載均衡的整合根據此註解配置負載均衡器。註解值確定負載均衡器如何檢查後端目標的健康狀況。

service.beta.kubernetes.io/aws-load-balancer-healthcheck-timeout (beta)

示例:service.beta.kubernetes.io/aws-load-balancer-healthcheck-timeout: "3"

用於:Service

雲控制器管理器與 AWS 彈性負載均衡的整合根據此註解配置負載均衡器。註解值指定探測尚未成功之前自動視為失敗的秒數。

service.beta.kubernetes.io/aws-load-balancer-healthcheck-unhealthy-threshold (beta)

示例:service.beta.kubernetes.io/aws-load-balancer-healthcheck-unhealthy-threshold: "3"

用於:Service

雲控制器管理器與 AWS 彈性負載均衡的整合根據此註解配置負載均衡器。註解值指定後端被認為對流量不健康的連續不成功健康檢查的數量。

service.beta.kubernetes.io/aws-load-balancer-internal (beta)

示例:service.beta.kubernetes.io/aws-load-balancer-internal: "true"

用於:Service

雲控制器管理器與 AWS 彈性負載均衡的整合根據此註解配置負載均衡器。當你將此註解設定為“true”時,整合會配置一個內部負載均衡器。

如果你使用 AWS 負載均衡器控制器,請參閱 service.beta.kubernetes.io/aws-load-balancer-scheme

service.beta.kubernetes.io/aws-load-balancer-manage-backend-security-group-rules (beta)

示例:service.beta.kubernetes.io/aws-load-balancer-manage-backend-security-group-rules: "true"

用於:Service

AWS 負載均衡器控制器使用此註解。請參閱 AWS 負載均衡器控制器文件中的註解

service.beta.kubernetes.io/aws-load-balancer-name (beta)

示例:service.beta.kubernetes.io/aws-load-balancer-name: my-elb

用於:Service

如果你在 Service 上設定此註解,並且還使用 service.beta.kubernetes.io/aws-load-balancer-type: "external" 註解該 Service,並且你在叢集中使用了 AWS 負載均衡器控制器,則 AWS 負載均衡器控制器將該負載均衡器的名稱設定為你為*此*註解設定的值。

請參閱 AWS 負載均衡器控制器文件中的註解

service.beta.kubernetes.io/aws-load-balancer-nlb-target-type (beta)

示例:service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: "true"

用於:Service

AWS 負載均衡器控制器使用此註解。請參閱 AWS 負載均衡器控制器文件中的註解

service.beta.kubernetes.io/aws-load-balancer-private-ipv4-addresses (beta)

示例:service.beta.kubernetes.io/aws-load-balancer-private-ipv4-addresses: "198.51.100.0,198.51.100.64"

用於:Service

AWS 負載均衡器控制器使用此註解。請參閱 AWS 負載均衡器控制器文件中的註解

service.beta.kubernetes.io/aws-load-balancer-proxy-protocol (beta)

示例:service.beta.kubernetes.io/aws-load-balancer-proxy-protocol: "*"

用於:Service

Kubernetes 與 AWS 彈性負載均衡的官方整合根據此註解配置負載均衡器。唯一允許的值是 "*",這表示負載均衡器應使用 PROXY 協議包裝到後端 Pod 的 TCP 連線。

service.beta.kubernetes.io/aws-load-balancer-scheme (beta)

示例:service.beta.kubernetes.io/aws-load-balancer-scheme: internal

用於:Service

AWS 負載均衡器控制器使用此註解。請參閱 AWS 負載均衡器控制器文件中的註解

service.beta.kubernetes.io/aws-load-balancer-security-groups (已棄用)

示例:service.beta.kubernetes.io/aws-load-balancer-security-groups: "sg-53fae93f,sg-8725gr62r"

用於:Service

AWS 負載均衡器控制器使用此註解來指定要附加到 AWS 負載均衡器的逗號分隔安全組列表。支援安全組的名稱和 ID,其中名稱匹配 Name 標籤,而不是 groupName 屬性。

將此註解新增到 Service 時,負載均衡器控制器會將註解引用的安全組附加到負載均衡器。如果省略此註解,AWS 負載均衡器控制器會自動建立一個新的安全組並將其附加到負載均衡器。

service.beta.kubernetes.io/load-balancer-source-ranges (已棄用)

示例:service.beta.kubernetes.io/load-balancer-source-ranges: "192.0.2.0/25"

用於:Service

AWS 負載均衡器控制器使用此註解。你應該改為為 Service 設定 .spec.loadBalancerSourceRanges

service.beta.kubernetes.io/aws-load-balancer-ssl-cert (beta)

示例:service.beta.kubernetes.io/aws-load-balancer-ssl-cert: "arn:aws:acm:us-east-1:123456789012:certificate/12345678-1234-1234-1234-123456789012"

用於:Service

與 AWS 彈性負載均衡的官方整合根據此註解為 type: LoadBalancer 的 Service 配置 TLS。註解的值是負載均衡器偵聽器應使用的 X.509 證書的 AWS 資源名稱 (ARN)。

(TLS 協議基於舊版技術,簡稱為 SSL。)

service.beta.kubernetes.io/aws-load-balancer-ssl-negotiation-policy (beta)

示例:service.beta.kubernetes.io/aws-load-balancer-ssl-negotiation-policy: ELBSecurityPolicy-TLS-1-2-2017-01

與 AWS 彈性負載均衡的官方整合根據此註解為 type: LoadBalancer 的 Service 配置 TLS。註解的值是用於與客戶端對等方協商 TLS 的 AWS 策略名稱。

service.beta.kubernetes.io/aws-load-balancer-ssl-ports (beta)

示例:service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "*"

與 AWS 彈性負載均衡的官方整合根據此註解為 type: LoadBalancer 的 Service 配置 TLS。註解的值可以是 "*"(表示所有負載均衡器埠都應使用 TLS),也可以是逗號分隔的埠號列表。

service.beta.kubernetes.io/aws-load-balancer-subnets (beta)

示例:service.beta.kubernetes.io/aws-load-balancer-subnets: "private-a,private-b"

Kubernetes 與 AWS 的官方整合使用此註解來配置負載均衡器並確定在哪些 AWS 可用區中部署託管負載均衡服務。該值是子網名稱的逗號分隔列表,或子網 ID 的逗號分隔列表。

service.beta.kubernetes.io/aws-load-balancer-target-group-attributes (beta)

示例:service.beta.kubernetes.io/aws-load-balancer-target-group-attributes: "stickiness.enabled=true,stickiness.type=source_ip"

用於:Service

AWS 負載均衡器控制器使用此註解。請參閱 AWS 負載均衡器控制器文件中的註解

service.beta.kubernetes.io/aws-load-balancer-target-node-labels (beta)

示例:service.beta.kubernetes.io/aws-load-balancer-target-node-labels: "kubernetes.io/os=Linux,topology.kubernetes.io/region=us-east-2"

Kubernetes 與 AWS 的官方整合使用此註解來確定叢集中的哪些節點應被視為負載均衡器的有效目標。

service.beta.kubernetes.io/aws-load-balancer-type (beta)

示例:service.beta.kubernetes.io/aws-load-balancer-type: external

Kubernetes 與 AWS 的官方整合使用此註解來確定 AWS 雲提供商整合是否應管理 type: LoadBalancer 的 Service。

有兩個允許的值:

nlb
雲控制器管理器配置網路負載均衡器
external
雲控制器管理器不配置任何負載均衡器

如果你在 AWS 上部署 type: LoadBalancer 的 Service,並且未設定任何 service.beta.kubernetes.io/aws-load-balancer-type 註解,則 AWS 整合將部署經典的彈性負載均衡器。在沒有註解的情況下,此行為是預設行為,除非你另行指定。

當你在 type: LoadBalancer 的 Service 上將此註解設定為 external,並且你的叢集中具有正常工作的 AWS 負載均衡器控制器部署時,AWS 負載均衡器控制器將嘗試根據 Service 規範部署負載均衡器。

service.beta.kubernetes.io/azure-load-balancer-disable-tcp-reset (已棄用)

示例:service.beta.kubernetes.io/azure-load-balancer-disable-tcp-reset: "false"

用於:Service

此註解僅適用於由 Azure 標準負載均衡器支援的服務。此註解用於 Service,以指定負載均衡器是否應停用或啟用空閒超時時的 TCP 重置。如果啟用,它有助於應用程式表現得更可預測,檢測連線終止,刪除過期連線並啟動新連線。你可以將值設定為 true 或 false。

有關更多資訊,請參閱負載均衡器 TCP 重置

pod-security.kubernetes.io/enforce

型別:標籤

示例:pod-security.kubernetes.io/enforce: "baseline"

用於:名稱空間

值**必須**是 privilegedbaselinerestricted 之一,它們對應於Pod 安全標準級別。具體來說,enforce 標籤會禁止在標記的名稱空間中建立任何不符合指定級別要求的 Pod。

有關更多資訊,請參閱在名稱空間級別實施 Pod 安全

pod-security.kubernetes.io/enforce-version

型別:標籤

示例:pod-security.kubernetes.io/enforce-version: "1.34"

用於:名稱空間

值**必須**是 latest 或格式為 v<major>.<minor> 的有效 Kubernetes 版本。這決定了驗證 Pod 時應用的Pod 安全標準策略的版本。

有關更多資訊,請參閱在名稱空間級別實施 Pod 安全

pod-security.kubernetes.io/audit

型別:標籤

示例:pod-security.kubernetes.io/audit: "baseline"

用於:名稱空間

值**必須**是 privilegedbaselinerestricted 之一,它們對應於Pod 安全標準級別。具體來說,audit 標籤不會阻止在標記的名稱空間中建立不符合指定級別要求的 Pod,但會將此註解新增到 Pod。

有關更多資訊,請參閱在名稱空間級別實施 Pod 安全

pod-security.kubernetes.io/audit-version

型別:標籤

示例:pod-security.kubernetes.io/audit-version: "1.34"

用於:名稱空間

值**必須**是 latest 或格式為 v<major>.<minor> 的有效 Kubernetes 版本。這決定了驗證 Pod 時應用的Pod 安全標準策略的版本。

有關更多資訊,請參閱在名稱空間級別實施 Pod 安全

pod-security.kubernetes.io/warn

型別:標籤

示例:pod-security.kubernetes.io/warn: "baseline"

用於:名稱空間

值**必須**是 privilegedbaselinerestricted 之一,它們對應於Pod 安全標準級別。具體來說,warn 標籤不會阻止在標記的名稱空間中建立不符合指定級別要求的 Pod,但在建立後會向用戶返回警告。請注意,在建立或更新包含 Pod 模板的物件(例如 Deployments、Jobs、StatefulSets 等)時也會顯示警告。

有關更多資訊,請參閱在名稱空間級別實施 Pod 安全

pod-security.kubernetes.io/warn-version

型別:標籤

示例:pod-security.kubernetes.io/warn-version: "1.34"

用於:名稱空間

值**必須**是 latest 或格式為 v<major>.<minor> 的有效 Kubernetes 版本。這決定了驗證提交的 Pod 時應用的Pod 安全標準策略的版本。請注意,在建立或更新包含 Pod 模板的物件(例如 Deployments、Jobs、StatefulSets 等)時也會顯示警告。

有關更多資訊,請參閱在名稱空間級別實施 Pod 安全

rbac.authorization.kubernetes.io/autoupdate

型別:註解

示例:rbac.authorization.kubernetes.io/autoupdate: "false"

用於:ClusterRole、ClusterRoleBinding、Role、RoleBinding

當 API 伺服器建立的預設 RBAC 物件上的此註解設定為 "true" 時,它們會在伺服器啟動時自動更新以新增缺失的許可權和主體(額外的許可權和主體保留不變)。要防止自動更新特定的角色或角色繫結,請將此註解設定為 "false"。如果你建立自己的 RBAC 物件並將此註解設定為 "false",則 kubectl auth reconcile(它允許在清單中協調任意 RBAC 物件)會遵守此註解,並且不會自動新增缺失的許可權和主體。

kubernetes.io/psp (已棄用)

型別:註解

示例:kubernetes.io/psp: restricted

用於:Pod

此註解僅與你使用PodSecurityPolicy物件有關。Kubernetes v1.34 不支援 PodSecurityPolicy API。

當 PodSecurityPolicy 准入控制器准入 Pod 時,准入控制器會修改 Pod 以具有此註解。註解的值是用於驗證的 PodSecurityPolicy 的名稱。

seccomp.security.alpha.kubernetes.io/pod (非功能性)

型別:註解

用於:Pod

Kubernetes v1.25 之前允許你使用此註解配置 seccomp 行為。請參閱使用 seccomp 限制容器的系統呼叫以瞭解指定 Pod 的 seccomp 限制的受支援方法。

container.seccomp.security.alpha.kubernetes.io/[NAME] (非功能性)

型別:註解

用於:Pod

Kubernetes v1.25 之前允許你使用此註解配置 seccomp 行為。請參閱使用 seccomp 限制容器的系統呼叫以瞭解指定 Pod 的 seccomp 限制的受支援方法。

snapshot.storage.kubernetes.io/allow-volume-mode-change

型別:註解

示例:snapshot.storage.kubernetes.io/allow-volume-mode-change: "true"

用於:VolumeSnapshotContent

值可以是 truefalse。這決定了當從 VolumeSnapshot 建立 PersistentVolumeClaim 時,使用者是否可以修改源卷的模式。

有關更多資訊,請參閱轉換快照的卷模式Kubernetes CSI 開發者文件

scheduler.alpha.kubernetes.io/critical-pod (已棄用)

型別:註解

示例:scheduler.alpha.kubernetes.io/critical-pod: ""

用於:Pod

此註解讓 Kubernetes 控制平面瞭解 Pod 是關鍵 Pod,因此排程器不會移除此 Pod。

jobset.sigs.k8s.io/jobset-name

型別:標籤、註解

示例:jobset.sigs.k8s.io/jobset-name: "my-jobset"

用於:Jobs、Pods

此標籤/註解用於儲存 Job 或 Pod 所屬的 JobSet 的名稱。JobSet 是你可以部署到 Kubernetes 叢集中的擴充套件 API。

jobset.sigs.k8s.io/replicatedjob-replicas

型別:標籤、註解

示例:jobset.sigs.k8s.io/replicatedjob-replicas: "5"

用於:Jobs、Pods

此標籤/註解指定 ReplicatedJob 的副本數量。

jobset.sigs.k8s.io/replicatedjob-name

型別:標籤、註解

示例:jobset.sigs.k8s.io/replicatedjob-name: "my-replicatedjob"

用於:Jobs、Pods

此標籤或註解儲存此 Job 或 Pod 所屬的複製作業的名稱。

jobset.sigs.k8s.io/job-index

型別:標籤、註解

示例:jobset.sigs.k8s.io/job-index: "0"

用於:Jobs、Pods

此標籤/註解由 JobSet 控制器在子 Job 和 Pod 上設定。它包含其父 ReplicatedJob 中 Job 副本的索引。

jobset.sigs.k8s.io/job-key

型別:標籤、註解

示例:jobset.sigs.k8s.io/job-key: "0f1e93893c4cb372080804ddb9153093cb0d20cefdd37f653e739c232d363feb"

用於:Jobs、Pods

JobSet 控制器在 JobSet 的子 Job 和 Pod 上設定此標籤(以及具有相同鍵的註解)。該值是名稱空間 Job 名稱的 SHA256 雜湊值。

alpha.jobset.sigs.k8s.io/exclusive-topology

型別:註解

示例:alpha.jobset.sigs.k8s.io/exclusive-topology: "zone"

用於:JobSets、Jobs

你可以在 JobSet 上設定此標籤/註解,以確保每個拓撲組的 Job 獨佔放置。你還可以在複製 Job 模板上定義此標籤或註解。閱讀 JobSet 的文件以瞭解更多資訊。

alpha.jobset.sigs.k8s.io/node-selector

型別:註解

示例:alpha.jobset.sigs.k8s.io/node-selector: "true"

用於:Jobs、Pods

此標籤/註解可應用於 JobSet。設定後,JobSet 控制器會透過新增節點選擇器和容忍度來修改 Job 及其相應的 Pod。這可確保每個拓撲域的 Job 獨佔放置,根據策略將這些 Pod 的排程限制到特定節點。

alpha.jobset.sigs.k8s.io/namespaced-job

型別:標籤

示例:alpha.jobset.sigs.k8s.io/namespaced-job: "default_myjobset-replicatedjob-0"

用於:節點

此標籤是手動設定的,或自動設定的(例如,叢集自動擴縮器)在節點上。當 alpha.jobset.sigs.k8s.io/node-selector 設定為 "true" 時,JobSet 控制器會向此節點標籤新增一個節點選擇器(以及對汙點 alpha.jobset.sigs.k8s.io/no-schedule 的容忍度,接下來討論)。

alpha.jobset.sigs.k8s.io/no-schedule

型別:汙點

示例:alpha.jobset.sigs.k8s.io/no-schedule: "NoSchedule"

用於:節點

此汙點是手動設定的,或自動設定的(例如,叢集自動擴縮器)在節點上。當 alpha.jobset.sigs.k8s.io/node-selector 設定為 "true" 時,JobSet 控制器會向此節點汙點新增一個容忍度(以及對標籤 alpha.jobset.sigs.k8s.io/namespaced-job 的節點選擇器,前面已討論)。

jobset.sigs.k8s.io/coordinator

型別:註解、標籤

示例:jobset.sigs.k8s.io/coordinator: "myjobset-workers-0-0.headless-svc"

用於:Jobs、Pods

如果 JobSet 規範定義了 .spec.coordinator 欄位,則此註解/標籤用於 Job 和 Pod,以儲存協調器 Pod 可訪問的穩定網路端點。

用於審計的註解

有關詳細資訊,請參閱審計註解

kubeadm

kubeadm.alpha.kubernetes.io/cri-socket (已棄用)

型別:註解

示例:kubeadm.alpha.kubernetes.io/cri-socket: unix:///run/containerd/container.sock

用於:節點

kubeadm.kubernetes.io/etcd.advertise-client-urls

型別:註解

示例:kubeadm.kubernetes.io/etcd.advertise-client-urls: https://172.17.0.18:2379

用於:Pod

kubeadm 放置在本地管理的 etcd Pod 上的註解,用於跟蹤 etcd 客戶端應連線的 URL 列表。這主要用於 etcd 叢集健康檢查目的。

kubeadm.kubernetes.io/kube-apiserver.advertise-address.endpoint

型別:註解

示例:kubeadm.kubernetes.io/kube-apiserver.advertise-address.endpoint: https://172.17.0.18:6443

用於:Pod

kubeadm 放置在本地管理的 kube-apiserver Pod 上的註解,用於跟蹤該 API 伺服器例項公開的廣播地址/埠端點。

kubeadm.kubernetes.io/component-config.hash

型別:註解

示例:kubeadm.kubernetes.io/component-config.hash: 2c26b46b68ffc68ff99b453c1d30413413422d706483bfa0f98a5e886266e7ae

用於:ConfigMap

kubeadm 放置在它管理用於配置元件的 ConfigMap 上的註解。它包含一個雜湊 (SHA-256),用於確定使用者是否為特定元件應用了與 kubeadm 預設值不同的設定。

node-role.kubernetes.io/control-plane

型別:標籤

用於:節點

一個標記標籤,用於指示節點用於執行控制平面元件。kubeadm 工具將此標籤應用於其管理的控制平面節點。其他叢集管理工具通常也會設定此汙點。

你可以使用此標籤標記控制平面節點,以便更輕鬆地將 Pod 僅排程到這些節點上,或者避免在控制平面上執行 Pod。如果設定了此標籤,EndpointSlice 控制器在計算拓撲感知提示時會忽略該節點。

node-role.kubernetes.io/*

型別:標籤

示例:node-role.kubernetes.io/gpu: gpu

用於:節點

當你想要標記節點角色時,此可選標籤會應用於節點。節點角色(標籤鍵中 / 後面的文字)可以設定,只要整個鍵遵循物件標籤的語法規則。

Kubernetes 定義了一個特定的節點角色,**control-plane**。你可以用來標記該節點角色的標籤是node-role.kubernetes.io/control-plane

node-role.kubernetes.io/control-plane

型別:汙點

示例:node-role.kubernetes.io/control-plane:NoSchedule

用於:節點

kubeadm 在控制平面節點上應用的汙點,以限制 Pod 的放置,並只允許特定的 Pod 排程到它們上。

如果應用此汙點,控制平面節點只允許排程關鍵工作負載。你可以在特定節點上手動使用以下命令移除此汙點。

kubectl taint nodes <node-name> node-role.kubernetes.io/control-plane:NoSchedule-

node-role.kubernetes.io/master (已棄用)

型別:汙點

用於:節點

示例:node-role.kubernetes.io/master:NoSchedule

kubeadm 以前在控制平面節點上應用的汙點,只允許關鍵工作負載排程到它們上。已被node-role.kubernetes.io/control-plane 汙點取代。kubeadm 不再設定或使用此已棄用的汙點。

resource.kubernetes.io/admin-access {resource-kubernetes-io-admin-access}

型別:標籤

示例:resource.kubernetes.io/admin-access: "true"

用於:名稱空間

用於在名稱空間內授予對某些 resource.k8s.io API 型別的管理訪問許可權。當此標籤在名稱空間上設定為值 "true"(區分大小寫)時,它允許在任何名稱空間的 resource.k8s.io API 型別中使用 adminAccess: true。目前,此許可權適用於 ResourceClaimResourceClaimTemplate 物件。

有關更多資訊,請參閱動態資源分配管理訪問

最後修改時間:2025 年 7 月 1 日 晚上 10:34(太平洋標準時間):DRAAdminAccess: 更新 v1.34 (6611158ea9)