廣為人知的標籤、註解和污點

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 伺服器不會管理物件規格。如需更多詳細資訊,請閱讀強制與建議組態物件的維護

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.32 版本中,若定義 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.32 版本中,若定義 CustomResourceDefinition 時已加上 applyset.kubernetes.io/is-parent-type 標籤,您即可在 Secrets、ConfigMaps 或自訂資源上使用此註解。

用於實作 kubectl 中基於 ApplySet 的修剪 功能規格的一部分。此註解會加到用來追蹤 ApplySet 的父物件上,以最佳化 ApplySet 成員物件的列舉效率。雖然在 ApplySet 規格中為選用項目,因為工具有其他探索或最佳化方式可用。然而,Kubernetes 1.32 版本的 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.32 版本中,若定義 CustomResourceDefinition 時已加上 applyset.kubernetes.io/is-parent-type 標籤,您即可在 Secrets、ConfigMaps 或自訂資源上使用此註解。

用於實作 kubectl 中基於 ApplySet 的修剪 功能規格的一部分。此註解會加到用來追蹤 ApplySet 的父物件上,以最佳化 ApplySet 成員物件的列舉效率。雖然在 ApplySet 規格中為選用項目,因為工具有其他探索或最佳化方式可用。然而,在 Kubernetes 1.32 版本中,kubectl 則要求必須加上此註解。若要使用此註解,其值必須是以逗號分隔的群組種類清單,並採用完整名稱格式,例如 <resource>.<group>

applyset.kubernetes.io/id (alpha)

類型:標籤

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

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

此標籤為 Alpha 階段功能。在 Kubernetes 1.32 版本中,若定義 CustomResourceDefinition 時已加上 applyset.kubernetes.io/is-parent-type 標籤,您即可在 Secrets、ConfigMaps 或自訂資源上使用此標籤。

用於實作 kubectl 中基於 ApplySet 的修剪 功能規格的一部分。此標籤能讓物件成為 ApplySet 父物件。其值為 ApplySet 的唯一 ID,此 ID 是從父物件的身分識別衍生而來。此 ID **必須** 採用 base64 編碼(使用 RFC4648 的 URL 安全編碼),編碼對象為物件的 group-kind-name-namespace 的雜湊值,格式如下:<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.32"

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

此註解為 Alpha 階段功能。在 Kubernetes 1.32 版本中,若定義 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

此註解會指派給產生的 ResourceClaim。其值對應於任何 Pod 的 .spec 欄位中,ResourceClaim 所屬的資源請求名稱。此註解是動態資源分配的內部實作細節。您不應讀取或修改此註解的值。

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"

用於:所有物件

此註解用於在 manifest 中將物件標記為本機組態,此組態不應提交至 Kubernetes API。

當此註解的值為 "true" 時,表示此物件僅供用戶端工具取用,不應提交至 API 伺服器。

值為 "false" 則表示即使物件在其他情況下會被視為本機組態,仍應提交至 API 伺服器。

此註解是 Kubernetes Resource Model (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 Resource Model (KRM) 函數規格作為協調器時,於內部使用。具有此前綴的註解屬於協調程序內部,不會持久儲存到檔案系統上的 manifest 中。換句話說,協調器工具應在從本機檔案系統讀取檔案時設定這些註解,並在將函數輸出寫回檔案系統時移除這些註解。

除非另有指定,否則 KRM 函數**不得**修改具有此前綴的註解。如此一來,協調器工具就能新增額外的內部註解,而無需變更現有的函數。

internal.config.kubernetes.io/path

類型:註解

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

用於:所有物件

此註解記錄了載入物件時所使用的 manifest 檔案路徑,此路徑為斜線分隔、與作業系統無關的相對路徑。此路徑是相對於檔案系統上的固定位置,並由協調器工具決定。

此註解是 Kubernetes Resource Model (KRM) 函數規格的一部分,Kustomize 和類似的第三方工具會使用此規格。

除非 KRM 函數正在修改參考的檔案,否則**不應**修改輸入物件上的此註解。KRM 函數**可以**在其產生的物件中加入此註解。

internal.config.kubernetes.io/index

類型:註解

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

用於:所有物件

此註解記錄了 YAML 文件在 manifest 檔案中的索引位置(從零開始),物件即是從該 manifest 檔案載入而來。請注意,YAML 文件以三個破折號 (---) 分隔,且每個文件可以包含一個物件。若未指定此註解,則預設值為 0。

此註解是 Kubernetes Resource Model (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/prefilter-result: '{"NodeAffinity":"[\"node-\a\"]"}'

用於:Pod

此註解記錄了 prefilter 排程器外掛程式的 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

此註解記錄了 prefilter 排程器外掛程式的結果,由 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

此註解記錄了 prefilter 排程器外掛程式的結果,由 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 OS,但與 kubelet 運作節點的作業系統不同,kubelet 也會拒絕執行 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 根據指定的 manifest 建立靜態 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 manifest 的位置。對於在 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

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

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. 作為卷掛載的密鑰必須列在 ServiceAccount 的 secrets 欄位中。
  2. 容器(包括 sidecar 容器和 init 容器)的 envFrom 中參照的密鑰,也必須列在 ServiceAccount 的 secrets 欄位中。如果 Pod 中有任何容器參照了未列在 ServiceAccount 的 secrets 欄位中的密鑰(即使參照標記為 optional),則 Pod 將無法啟動,並產生錯誤訊息,指出未遵循密鑰參照規範。
  3. 在 Pod 的 imagePullSecrets 中參照的密鑰,必須存在於 ServiceAccount 的 imagePullSecrets 欄位中,否則 Pod 將無法啟動,並產生錯誤訊息,指出未遵循映像檔提取密鑰參照規範。

當您建立或更新 Pod 時,系統會檢查這些規則。如果 Pod 未遵循這些規則,將無法啟動,且您會看到錯誤訊息。如果 Pod 已在執行中,而您將 kubernetes.io/enforce-mountable-secrets 註解變更為 true,或編輯關聯的 ServiceAccount 以移除對 Pod 已在使用的密鑰參照,則 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 manifest 中的 DaemonSet Pod 上指定。當此註解設定為 "true" 時,ClusterAutoscaler 可以驅逐 DaemonSet Pod,即使其他規則通常會阻止驅逐。若要禁止 ClusterAutoscaler 驅逐 DaemonSet Pod,您可以將重要 DaemonSet Pod 的此註解設定為 "false"。若未設定此註解,ClusterAutoscaler 會遵循其整體行為 (亦即根據其組態驅逐 DaemonSet)。

kubernetes.io/ingress-bandwidth

類型:註解

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

用於:Pod

您可以對 Pod 套用品質服務 (QoS) 流量塑形,並有效限制其可用頻寬。Pod 的輸入流量會透過塑形佇列封包進行處理,以有效處理資料。若要限制 Pod 的頻寬,請編寫物件定義 JSON 檔案,並使用 kubernetes.io/ingress-bandwidth 註解指定資料流量速度。用於指定輸入速率的單位為位元/秒,以數量表示。例如,10M 代表每秒 10 百萬位元。

kubernetes.io/egress-bandwidth

類型:註解

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

用於:Pod

Pod 的輸出流量由監控機制處理,此機制只會捨棄超出設定速率的封包。您對 Pod 設定的限制不會影響其他 Pod 的頻寬。若要限制 Pod 的頻寬,請編寫物件定義 JSON 檔案,並使用 kubernetes.io/egress-bandwidth 註解指定資料流量速度。用於指定輸出速率的單位為位元/秒,以數量表示。例如,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),這些物件應由對應的 CSI 驅動程式透過 CSIMigration 功能閘道進行動態佈建/刪除。設定此註解後,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 註解,則其儲存裝置連接和分離操作由磁碟區連接/分離 控制器管理。

註解的值並不重要。

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)

此註解會自動為 CSINode 物件新增,該物件對應到安裝 CSIDriver 的節點。此註解顯示已遷移外掛程式的樹狀結構內外掛程式名稱。其值取決於叢集的樹狀結構內雲端供應商儲存類型。

例如,如果樹狀結構內雲端供應商儲存類型為 CSIMigrationvSphere,則應使用以下內容更新節點的 CSINodes 實例:storage.alpha.kubernetes.io/migrated-plugins: "kubernetes.io/vsphere-volume"

service.kubernetes.io/headless

類型:標籤

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

適用於:端點

當擁有服務是無 Headless 服務時,控制平面會將此標籤新增到端點物件。若要瞭解更多資訊,請閱讀無 Headless 服務

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

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

適用於:服務

此註解用於在服務上啟用拓撲感知提示。拓撲感知提示自此更名:此概念現在稱為拓撲感知路由。在服務上將註解設定為 Auto,會將 Kubernetes 控制平面設定為在與該服務關聯的 EndpointSlice 上新增拓撲提示。您也可以明確地將註解設定為 Disabled

如果您執行的 Kubernetes 版本低於 1.32,請查看該 Kubernetes 版本的說明文件,以瞭解拓撲感知路由在該版本中的運作方式。

此註解沒有其他有效值。如果您不想要服務的拓撲感知提示,請勿新增此註解。

service.kubernetes.io/topology-mode

類型:註解

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

適用於:服務

此註解提供了一種定義服務如何處理網路拓撲的方法;例如,您可以設定服務,讓 Kubernetes 偏好將用戶端和伺服器之間的流量保持在單一拓撲區域內。在某些情況下,這可以幫助降低成本或提高網路效能。

請參閱拓撲感知路由以瞭解更多詳細資訊。

kubernetes.io/service-name

類型:標籤

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

適用於:EndpointSlice

Kubernetes 使用此標籤將 EndpointSlice服務建立關聯。

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

kubernetes.io/service-account.name

類型:註解

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

適用於:Secret

此註解記錄權杖(儲存在 kubernetes.io/service-account-token 類型的 Secret 中)代表的 ServiceAccount 的名稱

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 時區)。

endpointslice.kubernetes.io/managed-by

類型:標籤

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

適用於:EndpointSlice

此標籤用於指示管理 EndpointSlice 的控制器或實體。此標籤旨在使不同的 EndpointSlice 物件能夠由同一叢集內的不同控制器或實體管理。

endpointslice.kubernetes.io/skip-mirror

類型:標籤

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

適用於:端點

可以在 Endpoints 資源上將此標籤設定為 "true",以指示 EndpointSliceMirroring 控制器不應使用 EndpointSlice 鏡像此資源。

service.kubernetes.io/service-proxy-name

類型:標籤

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

適用於:服務

kube-proxy 具有此標籤用於自訂代理,該代理將服務控制委派給自訂代理。

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 控制器的 1.9.0 版本起,預設會忽略 configuration-snippet 註解。必須明確啟用 NGINX ingress 控制器設定 allow-snippet-annotations. 才能使用此註解。在多租戶叢集中啟用此註解可能很危險,因為它可能導致其他方面權限有限的人員能夠檢索叢集中的所有 Secret。

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

類型:註解

適用於:Ingress

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

類型:標籤

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

適用於:服務

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

但是,不建議在任何服務上設定此標籤。

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 可以在節點上設定此註解,以表示其已設定的 IPv4 和/或 IPv6 位址。

當 kubelet 以設定為任何值的 --cloud-provider 旗標啟動時(包括外部和舊版樹狀結構內雲端供應商),它會在節點上設定此註解,以表示從命令列旗標 (--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"

適用於:由 CronJob 控制的 Job 和 Pod

當 Job 是 CronJob 的一部分時,此註解用於記錄 Job 的原始(預期)建立時間戳記。控制平面會將值設定為 RFC3339 格式的時間戳記。如果 Job 屬於指定時區的 CronJob,則時間戳記位於該時區。否則,時間戳記位於 controller-manager 的當地時間。

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 命令列工具使用此註解作為追蹤變更的舊版機制。該機制已被 伺服器端套用 取代。

kubectl.kubernetes.io/restartedAt

類型:註解

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

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

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

您不應假設此註解代表最近更新的日期/時間;自上次手動觸發的 rollout 以來,可能已進行了另一次變更。

如果您在 Pod 上手動設定此註解,則不會發生任何事。重新啟動副作用來自工作負載管理和 Pod 範本化的運作方式。

endpoints.kubernetes.io/over-capacity

類型:註解

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

適用於:端點

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

如果後端端點數量降至 1000 個以下,控制平面會移除此註解。

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

類型:註解

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

適用於:端點

此註解設定為 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 物件上設定了註解。此註解提供了以下詳細資訊

  • 誰是目前的領導者。
  • 取得目前領導地位的時間。
  • 租約(領導地位)的持續時間(秒)。
  • 應續約目前租約(目前領導地位)的時間。
  • 過去發生的領導權轉移次數。

Kubernetes 現在使用 Leases 來管理 Kubernetes 控制平面的領導權指派。

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

類型:註解

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

適用於:Job

Job 上存在此註解過去表示控制平面正在使用 Finalizer 追蹤 Job 狀態。新增或移除此註解不再有任何效果(Kubernetes v1.27 及更新版本)所有 Job 都使用 Finalizer 追蹤。

job-name(已棄用)

類型:標籤

範例:job-name: "pi"

適用於:由 Job 控制的 Job 和 Pod

controller-uid(已棄用)

類型:標籤

範例:controller-uid: "$UID"

適用於:由 Job 控制的 Job 和 Pod

batch.kubernetes.io/job-name

類型:標籤

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

適用於:由 Job 控制的 Job 和 Pod

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

batch.kubernetes.io/controller-uid

類型:標籤

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

適用於:由 Job 控制的 Job 和 Pod

此標籤用作取得對應於 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 起,此外掛程式已棄用。請改用 Taint 和 Toleration

node.kubernetes.io/not-ready

類型:Taint

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

用於:節點

節點控制器會偵測節點是否就緒,方法是監控其健康情況並據此新增或移除此 Taint。

node.kubernetes.io/unreachable

類型:Taint

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

用於:節點

節點控制器會將 Taint 新增到對應於 NodeCondition ReadyUnknown 的節點。

node.kubernetes.io/unschedulable

類型:Taint

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

用於:節點

當初始化節點以避免競爭條件時,將會將 Taint 新增到節點。

node.kubernetes.io/memory-pressure

類型:Taint

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

用於:節點

kubelet 會根據在節點上觀察到的 memory.availableallocatableMemory.available 偵測記憶體壓力。然後將觀察到的值與可以在 kubelet 上設定的對應閾值進行比較,以判斷是否應新增/移除節點狀況和 Taint。

node.kubernetes.io/disk-pressure

類型:Taint

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

用於:節點

kubelet 會根據在節點上觀察到的 imagefs.availableimagefs.inodesFreenodefs.availablenodefs.inodesFree(僅限 Linux)偵測磁碟壓力。然後將觀察到的值與可以在 kubelet 上設定的對應閾值進行比較,以判斷是否應新增/移除節點狀況和 Taint。

node.kubernetes.io/network-unavailable

類型:Taint

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

用於:節點

這最初由 kubelet 在使用的雲端供應商指示需要額外的網路設定時設定。只有在雲端上的路由正確設定後,雲端供應商才會移除 Taint。

node.kubernetes.io/pid-pressure

類型:Taint

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

用於:節點

kubelet 會檢查 /proc/sys/kernel/pid_max 大小的 D 值以及 Kubernetes 在節點上使用的 PID,以取得可用的 PID 數量,稱為 pid.available 度量。然後將此度量與可以在 kubelet 上設定的對應閾值進行比較,以判斷是否應新增/移除節點狀況和 Taint。

node.kubernetes.io/out-of-service

類型:Taint

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

用於:節點

使用者可以手動將 Taint 新增到節點,將其標記為停止服務。如果節點使用此 Taint 標記為停止服務,則節點上的 Pod 將被強制刪除(如果其上沒有相符的容忍度),並且在節點上終止的 Pod 的磁碟區分離操作將立即發生。這允許停止服務節點上的 Pod 在不同的節點上快速復原。

node.cloudprovider.kubernetes.io/uninitialized

類型:Taint

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

用於:節點

當 kubelet 以 "external" 雲端供應商啟動時,在節點上設定此 Taint 以將其標記為無法使用,直到來自 cloud-controller-manager 的控制器初始化此節點,然後移除 Taint。

node.cloudprovider.kubernetes.io/shutdown

類型:Taint

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

用於:節點

如果節點處於雲端供應商指定的關閉狀態,則節點會相應地被 node.cloudprovider.kubernetes.io/shutdownNoSchedule 的 Taint 效果污染。

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) 主節點的節點,此註解記錄 NFD 主節點的版本。它僅用於資訊用途。

nfd.node.kubernetes.io/worker.version

類型:註解

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

適用於:節點

如果節點上執行了節點功能探索的 工作節點,則此註解會記錄其版本。它僅用於資訊用途。

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"

適用於:服務

雲端控制器管理員與 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"

適用於:服務

雲端控制器管理員與 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

適用於:服務

雲端控制器管理員與 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"

適用於:服務

雲端控制器管理員與 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"

適用於:服務

雲端控制器管理員與 AWS 彈性負載平衡的整合會根據此註解的值中以逗號分隔的鍵/值對,設定負載平衡器的標籤(AWS 概念)。

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

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

適用於:服務

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

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

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

適用於:服務

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

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

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

適用於:服務

雲端控制器管理員與 AWS 彈性負載平衡的整合會根據此註解的值設定負載平衡器監聽器。

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

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

適用於:服務

雲端控制器管理員與 AWS 彈性負載平衡的整合會根據此註解設定負載平衡器。負載平衡器的連線耗盡設定取決於您設定的值。

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

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

適用於:服務

如果您為 type: LoadBalancer 的服務設定連線耗盡,並且您使用 AWS 雲端,則整合會根據此註解設定耗盡期間。您設定的值決定了耗盡逾時(以秒為單位)。

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

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

適用於:服務

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

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

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

適用於:服務

雲端控制器管理員與 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"

適用於:服務

雲端控制器管理員與 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"

適用於:服務

雲端控制器管理員與 AWS 彈性負載平衡的整合會根據此註解設定負載平衡器。該值是以逗號分隔的彈性 IP 位址配置 ID 清單。

此註解僅與 type: LoadBalancer 的服務相關,其中負載平衡器是 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"

適用於:服務

雲端控制器管理員與 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"

適用於:服務

雲端控制器管理員與 AWS 彈性負載平衡的整合,會根據此註解設定負載平衡器。註解值指定後端被視為健康並可處理流量所需的連續成功健康檢查次數。

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

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

適用於:服務

雲端控制器管理員與 AWS 彈性負載平衡的整合,會根據此註解設定負載平衡器。註解值指定負載平衡器進行健康檢查探測的間隔時間,以秒為單位。

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

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

適用於:服務

雲端控制器管理員與 AWS 彈性負載平衡的整合,會根據此註解設定負載平衡器。註解值決定用於 HTTP 健康檢查的 URL 路徑部分。

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

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

適用於:服務

雲端控制器管理員與 AWS 彈性負載平衡的整合,會根據此註解設定負載平衡器。註解值決定負載平衡器執行健康檢查時連接的埠。

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

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

適用於:服務

雲端控制器管理員與 AWS 彈性負載平衡的整合,會根據此註解設定負載平衡器。註解值決定負載平衡器如何檢查後端目標的健康狀態。

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

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

適用於:服務

雲端控制器管理員與 AWS 彈性負載平衡的整合,會根據此註解設定負載平衡器。註解值指定探測在尚未成功之前,自動被視為失敗之前的秒數。

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

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

適用於:服務

雲端控制器管理員與 AWS 彈性負載平衡的整合,會根據此註解設定負載平衡器。註解值指定後端被視為不健康且無法處理流量所需的連續不成功健康檢查次數。

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

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

適用於:服務

雲端控制器管理員與 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"

適用於:服務

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

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

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

適用於:服務

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

請參閱 AWS 負載平衡器控制器文件中的 annotations

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

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

適用於:服務

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"

適用於:服務

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

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

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

適用於:服務

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

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

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

適用於:服務

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

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

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

適用於:服務

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"

適用於:服務

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"

適用於:服務

官方與 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"

適用於:服務

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"

適用於:服務

此註解僅適用於 Azure 標準負載平衡器支援的 Service。此註解用於 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.32"

適用於:命名空間

必須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.32"

適用於:命名空間

必須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.32"

適用於:命名空間

必須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(允許在 manifest 中協調任意 RBAC 物件)會遵守此註解,並且不會自動新增遺失的權限和主體。

kubernetes.io/psp (已棄用)

類型:註解

範例:kubernetes.io/psp: restricted

用於:Pod

此註解僅在您使用 PodSecurityPolicy 物件時才相關。Kubernetes v1.32 不支援 PodSecurityPolicy API。

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

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

類型:註解

用於:Pod

v1.25 之前的 Kubernetes 允許您使用此註解設定 seccomp 行為。請參閱 使用 seccomp 限制容器的系統呼叫,以了解指定 Pod 的 seccomp 限制的支援方式。

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

類型:註解

用於:Pod

v1.25 之前的 Kubernetes 允許您使用此註解設定 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。

用於稽核的註解

請參閱 稽核註解 以取得更多詳細資訊。

kubeadm

kubeadm.alpha.kubernetes.io/cri-socket

類型:註解

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

用於:節點

kubeadm 使用的註解,用於保留在 init/join 時提供給 kubeadm 的 CRI socket 資訊,以供日後使用。kubeadm 使用此資訊註解 Node 物件。此註解仍為 "alpha",因為理想情況下這應該是 KubeletConfiguration 中的一個欄位。

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 伺服器執行個體公開的 advertise 位址/埠端點。

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/control-plane

類型:Taint

範例: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 (已棄用)

類型:Taint

用於:節點

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

kubeadm 先前套用於控制平面節點的污點,用於僅允許關鍵工作負載在其上排程。已由 node-role.kubernetes.io/control-plane 污點取代。kubeadm 不再設定或使用此已棄用的污點。

上次修改時間:2024 年 12 月 09 日 晚上 10:47 PST:documented label cluster-service (9f41c9a6b8)