知名標籤、註解和汙點
Kubernetes 保留 kubernetes.io
和 k8s.io
名稱空間中的所有標籤、註解和汙點。
本文件既可作為值的參考,也是分配值的協調點。
API 物件上使用的標籤、註解和汙點
apf.kubernetes.io/autoupdate-spec
型別:註解
示例:apf.kubernetes.io/autoupdate-spec: "true"
用於:FlowSchema
和 PriorityLevelConfiguration
物件
如果在 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"
用於:所有物件(通常用於工作負載資源)。
建立此資源的控制器/使用者。
注意
從 v1.9 開始,此標籤已棄用。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/contains-group-kinds
取代,對其的支援將在 applyset beta 或 GA 中移除。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,註解值可以是 file
或 http
,具體取決於 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
標籤。此標籤可以有三個值之一:Reconcile
、EnsureExists
或 Ignore
。
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。你不應自行新增、修改或刪除此標籤。
注意
當 kube-apiserver 沒有與 APIService 的 API 組/版本對應的內建或自定義資源 API 時,會自動管理的 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
注意
kubernetes.io/enforce-mountable-secrets
自 Kubernetes v1.32 起已棄用。請使用單獨的名稱空間來隔離對掛載 Secret 的訪問。此註解的值必須為 true 才能生效。當你將此註解設定為 "true" 時,Kubernetes 將對作為此 ServiceAccount 執行的 Pod 強制執行以下規則
- 作為卷掛載的 Secret 必須列在 ServiceAccount 的
secrets
欄位中。 - 容器(包括 Sidecar 容器和 Init 容器)的
envFrom
中引用的 Secret 也必須列在 ServiceAccount 的 secrets 欄位中。如果 Pod 中的任何容器引用了 ServiceAccount 的secrets
欄位中未列出的 Secret(即使該引用被標記為optional
),則 Pod 將無法啟動,並會生成指示不合規 Secret 引用的錯誤。 - 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)。
注意
此註解僅影響 DaemonSet Pod。kubernetes.io/ingress-bandwidth
型別:註解
示例:kubernetes.io/ingress-bandwidth: 10M
用於:Pod
你可以對 Pod 應用服務質量流量整形,並有效限制其可用頻寬。Pod 的入站流量透過整形排隊的包來有效處理資料。要限制 Pod 的頻寬,請編寫物件定義 JSON 檔案並使用 kubernetes.io/ingress-bandwidth
註解指定資料流量速度。用於指定入站速率的單位是每秒位元,表示為Quantity。例如,10M
表示每秒 10 兆位元。
注意
入站流量整形註解是一個實驗性功能。如果你想啟用流量整形支援,你必須將bandwidth
外掛新增到你的 CNI 配置檔案(預設 /etc/cni/net.d
)並確保二進位制檔案包含在你的 CNI bin 目錄(預設 /opt/cni/bin
)中。kubernetes.io/egress-bandwidth
型別:註解
示例:kubernetes.io/egress-bandwidth: 10M
用於:Pod
Pod 的出站流量透過策略進行處理,該策略簡單地丟棄超過配置速率的包。你對 Pod 設定的限制不會影響其他 Pod 的頻寬。要限制 Pod 的頻寬,請編寫物件定義 JSON 檔案並使用 kubernetes.io/egress-bandwidth
註解指定資料流量速度。用於指定出站速率的單位是每秒位元,表示為Quantity。例如,10M
表示每秒 10 兆位元。
注意
出站流量整形註解是一個實驗性功能。如果你想啟用流量整形支援,你必須將bandwidth
外掛新增到你的 CNI 配置檔案(預設 /etc/cni/net.d
)並確保二進位制檔案包含在你的 CNI bin 目錄(預設 /opt/cni/bin
)中。beta.kubernetes.io/instance-type(已棄用)
型別:標籤
注意
從 v1.17 開始,此標籤已棄用,取而代之的是 node.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(已棄用)
型別:標籤
注意
從 v1.17 開始,此標籤已棄用,取而代之的是 topology.kubernetes.io/region。failure-domain.beta.kubernetes.io/zone(已棄用)
型別:標籤
注意
從 v1.17 開始,此標籤已棄用,取而代之的是 topology.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 對可用區和區域的結構做了一些假設
- 區域和可用區是分層的:可用區是區域的嚴格子集,並且沒有可用區可以在 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 容器。
注意
從 v1.20 開始,此註解已棄用。實驗性 Hyper-V 支援已在 1.21 中移除。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
注意
從 v1.18 開始,此註解已棄用,取而代之的是spec.ingressClassName
。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 logs
或 kubectl exec
將使用此預設容器。
kubectl.kubernetes.io/default-logs-container (已棄用)
型別:註解
示例:kubectl.kubernetes.io/default-logs-container: "front-end-app"
註解的值是此 Pod 的預設日誌容器名稱。例如,不帶 -c
或 --container
標誌的 kubectl logs
將使用此預設容器。
注意
此註解已棄用。你應該改用kubectl.kubernetes.io/default-container
註解。Kubernetes 1.25 及更高版本會忽略此註解。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
注意
從 Kubernetes 1.27 開始,此標籤已棄用。Kubernetes 1.27 及更高版本會忽略此標籤,並使用帶有字首的job-name
標籤。controller-uid (已棄用)
型別:標籤
示例:controller-uid: "$UID"
用於:由 Jobs 控制的 Jobs 和 Pods
注意
從 Kubernetes 1.27 開始,此標籤已棄用。Kubernetes 1.27 及更高版本會忽略此標籤,並使用帶有字首的controller-uid
標籤。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"
用於:節點
當節點條件 Ready
為 Unknown
時,節點控制器將此汙點新增到節點。
node.kubernetes.io/unschedulable
型別:汙點
示例:node.kubernetes.io/unschedulable: "NoSchedule"
用於:節點
在初始化節點時,為了避免競爭條件,將向節點新增此汙點。
node.kubernetes.io/memory-pressure
型別:汙點
示例:node.kubernetes.io/memory-pressure: "NoSchedule"
用於:節點
kubelet 根據在節點上觀察到的 memory.available
和 allocatableMemory.available
來檢測記憶體壓力。然後將觀察到的值與可在 kubelet 上設定的相應閾值進行比較,以確定是否應新增/移除節點條件和汙點。
node.kubernetes.io/disk-pressure
型別:汙點
示例:node.kubernetes.io/disk-pressure :"NoSchedule"
用於:節點
kubelet 根據在節點上觀察到的 imagefs.available
、imagefs.inodesFree
、nodefs.available
和 nodefs.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 物件的建立者必須設定此標籤,並且物件的使用者應該使用此標籤來過濾為特定節點指定的特性。
注意
這些節點特性發現 (NFD) 標籤或註解僅適用於執行 NFD 的節點。要了解有關 NFD 及其元件的更多資訊,請訪問其官方文件。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 負載均衡器控制器會自動建立一個新的安全組並將其附加到負載均衡器。
注意
Kubernetes v1.27 及更高版本不再直接設定或讀取此註解。但是,AWS 負載均衡器控制器(Kubernetes 專案的一部分)仍然使用service.beta.kubernetes.io/aws-load-balancer-security-groups
註解。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 物件上的service.beta.kubernetes.io/aws-load-balancer-type
註解。有關此主題的更多詳細資訊,請參閱 AWS 文件。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"
用於:名稱空間
值**必須**是 privileged
、baseline
或 restricted
之一,它們對應於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"
用於:名稱空間
值**必須**是 privileged
、baseline
或 restricted
之一,它們對應於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"
用於:名稱空間
值**必須**是 privileged
、baseline
或 restricted
之一,它們對應於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
值可以是 true
或 false
。這決定了當從 VolumeSnapshot 建立 PersistentVolumeClaim 時,使用者是否可以修改源卷的模式。
有關更多資訊,請參閱轉換快照的卷模式和 Kubernetes CSI 開發者文件。
scheduler.alpha.kubernetes.io/critical-pod (已棄用)
型別:註解
示例:scheduler.alpha.kubernetes.io/critical-pod: ""
用於:Pod
此註解讓 Kubernetes 控制平面瞭解 Pod 是關鍵 Pod,因此排程器不會移除此 Pod。
注意
從 v1.16 開始,此註解已被移除,取而代之的是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 可訪問的穩定網路端點。
用於審計的註解
authorization.k8s.io/decision
authorization.k8s.io/reason
insecure-sha1.invalid-cert.kubernetes.io/$hostname
missing-san.invalid-cert.kubernetes.io/$hostname
pod-security.kubernetes.io/audit-violations
pod-security.kubernetes.io/enforce-policy
pod-security.kubernetes.io/exempt
validation.policy.admission.k8s.io/validation_failure
有關詳細資訊,請參閱審計註解。
kubeadm
kubeadm.alpha.kubernetes.io/cri-socket (已棄用)
型別:註解
示例:kubeadm.alpha.kubernetes.io/cri-socket: unix:///run/containerd/container.sock
用於:節點
注意
從 v1.34 開始,此註解已棄用,kubeadm 將不再主動設定和使用它。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
。目前,此許可權適用於 ResourceClaim
和 ResourceClaimTemplate
物件。
有關更多資訊,請參閱動態資源分配管理訪問。