廣為人知的標籤、註解和污點
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 伺服器不會管理物件規格。如需更多詳細資訊,請閱讀強制與建議組態物件的維護。
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.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/contains-group-kinds
取代。Applyset Beta 版或正式版將會移除對此註解的支援。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,註解值可能是 file
或 http
,取決於 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
標籤。此標籤可設定為三個值之一: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
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
注意
kubernetes.io/enforce-mountable-secrets
已於 Kubernetes v1.32 中棄用。請改用個別的命名空間,以隔離對已掛載密鑰的存取。此註解的值必須為 **true** 才會生效。當您將此註解設定為 "true" 時,Kubernetes 會對以此 ServiceAccount 執行的 Pod 強制執行下列規則:
- 作為卷掛載的密鑰必須列在 ServiceAccount 的
secrets
欄位中。 - 容器(包括 sidecar 容器和 init 容器)的
envFrom
中參照的密鑰,也必須列在 ServiceAccount 的 secrets 欄位中。如果 Pod 中有任何容器參照了未列在 ServiceAccount 的secrets
欄位中的密鑰(即使參照標記為optional
),則 Pod 將無法啟動,並產生錯誤訊息,指出未遵循密鑰參照規範。 - 在 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)。
注意
此註解僅影響 DaemonSet Pod。kubernetes.io/ingress-bandwidth
類型:註解
範例: kubernetes.io/ingress-bandwidth: 10M
用於:Pod
您可以對 Pod 套用品質服務 (QoS) 流量塑形,並有效限制其可用頻寬。Pod 的輸入流量會透過塑形佇列封包進行處理,以有效處理資料。若要限制 Pod 的頻寬,請編寫物件定義 JSON 檔案,並使用 kubernetes.io/ingress-bandwidth
註解指定資料流量速度。用於指定輸入速率的單位為位元/秒,以數量表示。例如,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
註解指定資料流量速度。用於指定輸出速率的單位為位元/秒,以數量表示。例如,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),這些物件應由對應的 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 對於區域和地區的結構做出了一些假設
- 地區和區域是階層式的:區域是地區的嚴格子集,且沒有區域可以同時屬於 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 容器。
注意
自 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 控制器的 1.9.0 版本起,預設會忽略 configuration-snippet
註解。必須明確啟用 NGINX ingress 控制器設定 allow-snippet-annotations.
才能使用此註解。在多租戶叢集中啟用此註解可能很危險,因為它可能導致其他方面權限有限的人員能夠檢索叢集中的所有 Secret。
kubernetes.io/ingress.class(已棄用)
類型:註解
適用於:Ingress
注意
自 v1.18 起,此註解已棄用,改用spec.ingressClassName
。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 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 命令列工具使用此註解作為追蹤變更的舊版機制。該機制已被 伺服器端套用 取代。
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
注意
自 Kubernetes 1.27 起,此標籤已棄用。Kubernetes 1.27 及更新版本會忽略此標籤,並使用帶有前綴的job-name
標籤。controller-uid(已棄用)
類型:標籤
範例:controller-uid: "$UID"
適用於:由 Job 控制的 Job 和 Pod
注意
自 Kubernetes 1.27 起,此標籤已棄用。Kubernetes 1.27 及更新版本會忽略此標籤,並使用帶有前綴的controller-uid
標籤。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 Ready
為 Unknown
的節點。
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.available
和 allocatableMemory.available
偵測記憶體壓力。然後將觀察到的值與可以在 kubelet 上設定的對應閾值進行比較,以判斷是否應新增/移除節點狀況和 Taint。
node.kubernetes.io/disk-pressure
類型:Taint
範例:node.kubernetes.io/disk-pressure :"NoSchedule"
用於:節點
kubelet 會根據在節點上觀察到的 imagefs.available
、imagefs.inodesFree
、nodefs.available
和 nodefs.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 在不同的節點上快速復原。
注意
請參閱 非正常節點關閉,以瞭解何時以及如何使用此 Taint 的更多詳細資訊。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/shutdown
和 NoSchedule
的 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 物件的建立者必須設定此標籤,而物件的消費者應該使用此標籤來篩選指定給特定節點的功能。
注意
這些節點功能探索 (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"
適用於:服務
雲端控制器管理員與 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 負載平衡器控制器會自動建立新的安全群組並將其附加到負載平衡器。
注意
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"
適用於:服務
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 物件上新增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"
適用於:服務
此註解僅適用於 Azure 標準負載平衡器支援的 Service。此註解用於 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.32"
適用於:命名空間
值必須是 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.32"
適用於:命名空間
值必須是 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.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
值可以是 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 優先順序。用於稽核的註解
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
用於:節點
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 不再設定或使用此已棄用的污點。