知名标签、注解和污点

Kubernetes 保留 kubernetes.iok8s.io 命名空间中的所有标签、注解和污点。

本文档既可作为值的参考,也是分配值的协调点。

API 对象上使用的标签、注解和污点

apf.kubernetes.io/autoupdate-spec

类型:注解

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

用于:FlowSchemaPriorityLevelConfiguration 对象

如果在 FlowSchema 或 PriorityLevelConfiguration 上将此注解设置为 true,则该对象的 spec 由 kube-apiserver 管理。如果 API 服务器无法识别 APF 对象,并且你将其注解为自动更新,则 API 服务器将删除整个对象。否则,API 服务器不管理对象 spec。有关更多详细信息,请阅读强制和建议配置对象的维护

app.kubernetes.io/component

类型:标签

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

用于:所有对象(通常用于工作负载资源)。

应用程序架构中的组件。

推荐标签之一。

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

类型:标签

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

用于:所有对象(通常用于工作负载资源)。

创建此资源的控制器/用户。

app.kubernetes.io/instance

类型:标签

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

用于:所有对象(通常用于工作负载资源)。

标识应用程序实例的唯一名称。要分配非唯一名称,请使用app.kubernetes.io/name

推荐标签之一。

app.kubernetes.io/managed-by

类型:标签

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

用于:所有对象(通常用于工作负载资源)。

用于管理应用程序操作的工具。

推荐标签之一。

app.kubernetes.io/name

类型:标签

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

用于:所有对象(通常用于工作负载资源)。

应用程序的名称。

推荐标签之一。

app.kubernetes.io/part-of

类型:标签

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

用于:所有对象(通常用于工作负载资源)。

此对象所属的高级应用程序的名称。

推荐标签之一。

app.kubernetes.io/version

类型:标签

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

用于:所有对象(通常用于工作负载资源)。

应用程序的当前版本。

常见的值形式包括

推荐标签之一。

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

类型:注解

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

用于:用作 ApplySet 父对象的对象。

此注解的使用是 Alpha 阶段。对于 Kubernetes 1.34 版本,如果定义它们的 CustomResourceDefinition 具有 applyset.kubernetes.io/is-parent-type 标签,则可以在 Secrets、ConfigMaps 或自定义资源上使用此注解。

用于实现 kubectl 中基于 ApplySet 的修剪的规范的一部分。此注解应用于用于跟踪 ApplySet 的父对象,以将 ApplySet 的范围扩展到父对象自身的命名空间(如果有)之外。该值是逗号分隔的命名空间名称列表,这些命名空间不是父对象所在的命名空间,其中找到了对象。

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

类型:注解

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

用于:用作 ApplySet 父对象的对象。

此注解的使用是 Alpha 阶段。对于 Kubernetes 1.34 版本,如果定义它们的 CustomResourceDefinition 具有 applyset.kubernetes.io/is-parent-type 标签,则可以在 Secrets、ConfigMaps 或自定义资源上使用此注解。

用于实现 kubectl 中基于 ApplySet 的修剪的规范的一部分。此注解应用于用于跟踪 ApplySet 的父对象,以优化 ApplySet 成员对象的列出。它在 ApplySet 规范中是可选的,因为工具可以执行发现或使用不同的优化。但是,截至 Kubernetes 1.34 版本,kubectl 要求它。如果存在,此注解的值必须是组种类(采用完全限定名称格式,即 <resource>.<group>)的逗号分隔列表。

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

类型:注解

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

用于:用作 ApplySet 父对象的对象。

对于 Kubernetes 1.34 版本,如果定义它们的 CustomResourceDefinition 具有 applyset.kubernetes.io/is-parent-type 标签,则可以在 Secrets、ConfigMaps 或自定义资源上使用此注解。

用于实现 kubectl 中基于 ApplySet 的修剪的规范的一部分。此注解应用于用于跟踪 ApplySet 的父对象,以优化 ApplySet 成员对象的列出。它在 ApplySet 规范中是可选的,因为工具可以执行发现或使用不同的优化。但是,在 Kubernetes 1.34 版本中,kubectl 要求它。如果存在,此注解的值必须是组种类(采用完全限定名称格式,即 <resource>.<group>)的逗号分隔列表。

applyset.kubernetes.io/id (alpha)

类型:标签

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

用于:用作 ApplySet 父对象的对象。

此标签的使用是 Alpha 阶段。对于 Kubernetes 1.34 版本,如果定义它们的 CustomResourceDefinition 具有 applyset.kubernetes.io/is-parent-type 标签,则可以在 Secrets、ConfigMaps 或自定义资源上使用此标签。

用于实现 kubectl 中基于 ApplySet 的修剪的规范的一部分。此标签使对象成为 ApplySet 父对象。其值是 ApplySet 的唯一 ID,该 ID 源自父对象本身的身份。此 ID 必须是对象上组种类名称命名空间的哈希值的 base64 编码(使用 RFC4648 的 URL 安全编码),形式为:<base64(sha256(<name>.<namespace>.<kind>.<group>))>。此标签的值与对象 UID 之间没有关系。

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

类型:标签

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

用于:自定义资源定义 (CRD)

此标签的使用是 Alpha 阶段。用于实现 kubectl 中基于 ApplySet 的修剪的规范的一部分。你可以在 CustomResourceDefinition (CRD) 上设置此标签,以将其定义的自定义资源类型(而不是 CRD 本身)标识为 ApplySet 的允许父级。此标签的唯一允许值为 "true";如果你想将 CRD 标记为不是 ApplySet 的有效父级,请省略此标签。

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

类型:标签

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

用于:所有对象。

此标签的使用是 Alpha 阶段。用于实现 kubectl 中基于 ApplySet 的修剪的规范的一部分。此标签使对象成为 ApplySet 的成员。标签的值必须与父对象上 applyset.kubernetes.io/id 标签的值匹配。

applyset.kubernetes.io/tooling (alpha)

类型:注解

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

用于:用作 ApplySet 父对象的对象。

此注解的使用是 Alpha 阶段。对于 Kubernetes 1.34 版本,如果定义它们的 CustomResourceDefinition 具有 applyset.kubernetes.io/is-parent-type 标签,则可以在 Secrets、ConfigMaps 或自定义资源上使用此注解。

用于实现 kubectl 中基于 ApplySet 的修剪的规范的一部分。此注解应用于用于跟踪 ApplySet 的父对象,以指示哪个工具管理该 ApplySet。工具应拒绝修改属于其他工具的 ApplySet。该值必须采用 <toolname>/<semver> 格式。

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

类型:标签

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

用于:Pod

当 StatefulSet 控制器为 StatefulSet 创建 Pod 时,它会在此 Pod 上设置此标签。标签的值是正在创建的 Pod 的序数索引。

有关更多详细信息,请参阅 StatefulSet 主题中的Pod 索引标签。请注意,必须启用 PodIndexLabel 特性门控才能将此标签添加到 Pod。

resource.kubernetes.io/pod-claim-name

类型:注解

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

用于:ResourceClaim

此注解分配给生成的 ResourceClaims。其值对应于为其创建 ResourceClaim 的任何 Pod 的 .spec 中资源声明的名称。此注解是动态资源分配的内部实现细节。你不需要读取或修改此注解的值。

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

类型:注解

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

用于:Pod

当此注解设置为 "true" 时,即使其他规则通常会阻止驱逐,集群自动扩缩器也允许驱逐 Pod。集群自动扩缩器永远不会驱逐显式设置为 "false" 的 Pod;你可以在你希望继续运行的重要 Pod 上设置它。如果未设置此注解,则集群自动扩缩器遵循其 Pod 级别行为。

config.kubernetes.io/local-config

类型:注解

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

用于:所有对象

此注解用于清单中,将对象标记为不应提交给 Kubernetes API 的本地配置。

此注解的值 "true" 表示该对象仅由客户端工具使用,不应提交给 API 服务器。

"false" 可用于声明即使对象在其他情况下被假定为本地,也应将其提交给 API 服务器。

此注解是 Kubernetes 资源模型 (KRM) 函数规范的一部分,该规范由 Kustomize 和类似的第三方工具使用。例如,Kustomize 从其最终构建输出中删除具有此注解的对象。

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

类型:注解

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

用于:Pod

此注解允许你指定 Kubernetes Pod 中容器的 AppArmor 安全配置文件。从 Kubernetes v1.30 开始,应使用 appArmorProfile 字段设置此值。要了解更多信息,请参阅 AppArmor 教程。该教程演示了如何使用 AppArmor 限制容器的功能和访问。

指定的配置文件规定了容器化进程必须遵守的一组规则和限制。这有助于强制执行容器的安全策略和隔离。

internal.config.kubernetes.io/*(保留前缀)

类型:注解

用于:所有对象

此前缀保留供根据 Kubernetes 资源模型 (KRM) 函数规范充当协调器的工具内部使用。带有此前缀的注解是协调过程的内部注解,不会持久化到文件系统上的清单中。换句话说,协调器工具在从本地文件系统读取文件时应设置这些注解,并在将函数输出写回文件系统时将其删除。

KRM 函数不得修改带有此前缀的注解,除非对给定注解另有规定。这使得协调器工具可以添加额外的内部注解,而无需更改现有函数。

internal.config.kubernetes.io/path

类型:注解

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

用于:所有对象

此注解记录了加载对象时清单文件的斜线分隔、与操作系统无关的相对路径。该路径相对于文件系统上的固定位置,由协调器工具确定。

此注解是 Kubernetes 资源模型 (KRM) 函数规范的一部分,该规范由 Kustomize 和类似的第三方工具使用。

KRM 函数不应修改输入对象上的此注解,除非它正在修改引用的文件。KRM 函数可以在其生成的对象上包含此注解。

internal.config.kubernetes.io/index

类型:注解

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

用于:所有对象

此注解记录了清单文件中包含对象的 YAML 文档的零索引位置。请注意,YAML 文档由三个破折号 (---) 分隔,每个文档可以包含一个对象。当未指定此注解时,默认为 0。

此注解是 Kubernetes 资源模型 (KRM) 函数规范的一部分,该规范由 Kustomize 和类似的第三方工具使用。

KRM 函数不应修改输入对象上的此注解,除非它正在修改引用的文件。KRM 函数可以在其生成的对象上包含此注解。

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

类型:注解

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

用于:Pod

此注解记录了绑定调度程序插件的结果,由 https://sigs.k8s.io/kube-scheduler-simulator 使用。

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

类型:注解

示例

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

用于:Pod

此注解记录了过滤调度程序插件的结果,由 https://sigs.k8s.io/kube-scheduler-simulator 使用。

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

类型:注解

示例

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

用于:Pod

此注解记录了调度程序根据得分调度程序插件的得分计算的最终得分,由 https://sigs.k8s.io/kube-scheduler-simulator 使用。

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

类型:注解

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

用于:Pod

此注解记录了许可调度程序插件的结果,由 https://sigs.k8s.io/kube-scheduler-simulator 使用。

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

类型:注解

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

用于:Pod

此注解记录了许可调度程序插件返回的超时,由 https://sigs.k8s.io/kube-scheduler-simulator 使用。

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

类型:注解

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

用于:Pod

此注解记录了后过滤调度程序插件的结果,由 https://sigs.k8s.io/kube-scheduler-simulator 使用。

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

类型:注解

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

用于:Pod

此注解记录了预绑定调度程序插件的结果,由 https://sigs.k8s.io/kube-scheduler-simulator 使用。

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

类型:注解

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

用于:Pod

此注解记录了预过滤调度程序插件的 PreFilter 结果,由 https://sigs.k8s.io/kube-scheduler-simulator 使用。

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

类型:注解

示例

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

用于:Pod

此注解记录了预过滤调度程序插件的结果,由 https://sigs.k8s.io/kube-scheduler-simulator 使用。

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

类型:注解

示例

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

用于:Pod

此注解记录了预过滤调度程序插件的结果,由 https://sigs.k8s.io/kube-scheduler-simulator 使用。

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

类型:注解

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

用于:Pod

此注解记录了保留调度程序插件的结果,由 https://sigs.k8s.io/kube-scheduler-simulator 使用。

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

类型:注解

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

用于:Pod

此注解记录了调度程序插件的所有过去调度结果,由 https://sigs.k8s.io/kube-scheduler-simulator 使用。

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

类型:注解

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

用于:Pod

此注解记录了评分调度程序插件的结果,由 https://sigs.k8s.io/kube-scheduler-simulator 使用。

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

类型:注解

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

用于:Pod

此注解记录了调度周期选择的节点,由 https://sigs.k8s.io/kube-scheduler-simulator 使用。

kubernetes.io/arch

类型:标签

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

用于:节点

Kubelet 用 Go 定义的 runtime.GOARCH 填充此值。如果你混合使用 ARM 和 x86 节点,这会很有用。

kubernetes.io/os

类型:标签

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

用于:节点、Pod

对于节点,kubelet 用 Go 定义的 runtime.GOOS 填充此值。如果你在集群中混合使用操作系统(例如:混合使用 Linux 和 Windows 节点),这会很有用。

你也可以在 Pod 上设置此标签。Kubernetes 允许你为此标签设置任何值;如果你使用此标签,你仍应将其设置为此 Pod 实际使用的操作系统的 Go runtime.GOOS 字符串。

当 Pod 的 kubernetes.io/os 标签值与节点上的标签值不匹配时,节点上的 kubelet 将不接受 Pod。但是,kube-scheduler 不会考虑这一点。另外,如果 Pod 的操作系统与运行该 kubelet 的节点的操作系统不同,则 kubelet 会拒绝运行你已指定 Pod OS 的 Pod。有关更多详细信息,请参阅 Pod OS

kubernetes.io/metadata.name

类型:标签

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

用于:命名空间

Kubernetes API 服务器(控制平面的一部分)在所有命名空间上设置此标签。标签值设置为命名空间的名称。你不能更改此标签的值。

如果你想使用标签选择器定位特定命名空间,这会很有用。

kubernetes.io/limit-ranger

类型:注解

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

用于:Pod

Kubernetes 默认不提供任何资源限制,这意味着除非你明确定义限制,否则你的容器可以消耗无限的 CPU 和内存。你可以为 Pod 定义默认请求或默认限制。你可以通过在相关命名空间中创建 LimitRange 来实现此目的。定义 LimitRange 后部署的 Pod 将应用这些限制。注解 kubernetes.io/limit-ranger 记录了为 Pod 指定了资源默认值,并且它们已成功应用。有关更多详细信息,请阅读 LimitRanges

kubernetes.io/config.hash

类型:注解

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

用于:Pod

当 kubelet 根据给定清单创建静态 Pod 时,它会将此注解附加到静态 Pod。注解的值是 Pod 的 UID。请注意,kubelet 还会将 .spec.nodeName 设置为当前节点名称,就像 Pod 已调度到该节点一样。

kubernetes.io/config.mirror

类型:注解

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

用于:Pod

对于 kubelet 在节点上创建的静态 Pod,API 服务器上会创建一个镜像 Pod。kubelet 添加一个注解以指示此 Pod 实际上是镜像 Pod。注解值从kubernetes.io/config.hash注解复制,该注解是 Pod 的 UID。

当更新设置此注解的 Pod 时,不能更改或删除该注解。如果 Pod 没有此注解,则在 Pod 更新期间不能添加它。

kubernetes.io/config.source

类型:注解

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

用于:Pod

此注解由 kubelet 添加,以指示 Pod 的来源。对于静态 Pod,注解值可以是 filehttp,具体取决于 Pod 清单的位置。对于在 API 服务器上创建然后调度到当前节点的 Pod,注解值为 api

kubernetes.io/config.seen

类型:注解

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

用于:Pod

当 kubelet 第一次看到 Pod 时,它可能会向 Pod 添加此注解,值为 RFC3339 格式的当前时间戳。

addonmanager.kubernetes.io/mode

类型:标签

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

用于:所有对象

要指定如何管理附加组件,你可以使用 addonmanager.kubernetes.io/mode 标签。此标签可以有三个值之一:ReconcileEnsureExistsIgnore

  • Reconcile:附加组件资源将定期与预期状态协调。如果存在任何差异,附加组件管理器将根据需要重新创建、重新配置或删除资源。如果未指定标签,这是默认模式。
  • EnsureExists:附加组件资源将仅检查是否存在,但创建后不会修改。当没有具有该名称的资源实例时,附加组件管理器将创建或重新创建资源。
  • Ignore:附加组件资源将被忽略。此模式适用于与附加组件管理器不兼容或由另一个控制器管理的附加组件。

有关更多详细信息,请参阅 Addon-manager

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

类型:标签

此标签已弃用。请改用kubernetes.io/arch

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

类型:标签

此标签已弃用。请改用kubernetes.io/os

kube-aggregator.kubernetes.io/automanaged

类型:标签

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

用于:APIService

kube-apiserver 在 API 服务器自动创建的任何 APIService 对象上设置此标签。该标签标记控制平面应如何管理该 APIService。你不应自行添加、修改或删除此标签。

有两个可能的值

  • onstart:APIService 应在 API 服务器启动时协调,但除此之外不应协调。
  • true:API 服务器应持续协调此 APIService。

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

类型:注解

用于:StatefulSet

服务上的此注解表示 Endpoints 控制器是否应继续为未就绪的 Pod 创建 Endpoints。这些服务的 Endpoints 保留其 DNS 记录,并从 kubelet 启动 Pod 中的所有容器并将其标记为 Running 的那一刻起,直到 kubelet 停止所有容器并从 API 服务器删除 Pod,持续接收来自服务的流量。

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

类型:注解

用于:HorizontalPodAutoscaler

此注解在早期 Kubernetes 版本中用于配置 HorizontalPodAutoscaler (HPA) 的扩缩行为。它允许你指定 HPA 应如何向上或向下扩缩 Pod,包括设置稳定窗口和扩缩策略。在任何受支持的 Kubernetes 版本中设置此注解均无效。

kubernetes.io/hostname

类型:标签

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

用于:节点

Kubelet 用节点的主机名填充此标签。请注意,主机名可以通过将 --hostname-override 标志传递给 kubelet 从“实际”主机名更改。

此标签也用作拓扑层次结构的一部分。有关更多信息,请参阅topology.kubernetes.io/zone

kubernetes.io/change-cause

类型:注解

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

用于:所有对象

此注解是对更改原因的最佳猜测。

当向可能更改对象的 kubectl 命令添加 --record 时,它会被填充。

kubernetes.io/description

类型:注解

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

用于:所有对象

此注解用于描述给定对象的特定行为。

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

类型:注解

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

用于:ServiceAccount

此注解的值必须为 true 才能生效。当你将此注解设置为 "true" 时,Kubernetes 将对作为此 ServiceAccount 运行的 Pod 强制执行以下规则

  1. 作为卷挂载的 Secret 必须列在 ServiceAccount 的 secrets 字段中。
  2. 容器(包括 Sidecar 容器和 Init 容器)的 envFrom 中引用的 Secret 也必须列在 ServiceAccount 的 secrets 字段中。如果 Pod 中的任何容器引用了 ServiceAccount 的 secrets 字段中未列出的 Secret(即使该引用被标记为 optional),则 Pod 将无法启动,并会生成指示不合规 Secret 引用的错误。
  3. Pod 的 imagePullSecrets 中引用的 Secret 必须存在于 ServiceAccount 的 imagePullSecrets 字段中,否则 Pod 将无法启动,并会生成指示不合规镜像拉取 Secret 引用的错误。

当你创建或更新 Pod 时,将检查这些规则。如果 Pod 不遵守它们,它将无法启动,你将看到一条错误消息。如果 Pod 已经在运行并且你将 kubernetes.io/enforce-mountable-secrets 注解更改为 true,或者你编辑关联的 ServiceAccount 以删除对 Pod 正在使用的 Secret 的引用,则 Pod 将继续运行。

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

类型:标签

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

用于:节点

你可以向特定的工作节点添加标签,以将它们从外部负载均衡器使用的后端服务器列表中排除。以下命令可用于将工作节点从后端集中的后端服务器列表中排除

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

controller.kubernetes.io/pod-deletion-cost

类型:注解

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

用于:Pod

此注解用于设置Pod 删除成本,它允许用户影响 ReplicaSet 的缩减顺序。注解值解析为 int32 类型。

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

类型:注解

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

用于:Pod

此注解控制 DaemonSet pod 是否应被 ClusterAutoscaler 驱逐。此注解需要在 DaemonSet 清单中的 DaemonSet pod 上指定。当此注解设置为 "true" 时,即使其他规则通常会阻止驱逐,ClusterAutoscaler 也允许驱逐 DaemonSet Pod。为了禁止 ClusterAutoscaler 驱逐 DaemonSet pod,你可以将此注解设置为 "false" 以用于重要的 DaemonSet pod。如果未设置此注解,则 ClusterAutoscaler 遵循其整体行为(即根据其配置驱逐 DaemonSet)。

kubernetes.io/ingress-bandwidth

类型:注解

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

用于:Pod

你可以对 Pod 应用服务质量流量整形,并有效限制其可用带宽。Pod 的入站流量通过整形排队的包来有效处理数据。要限制 Pod 的带宽,请编写对象定义 JSON 文件并使用 kubernetes.io/ingress-bandwidth 注解指定数据流量速度。用于指定入站速率的单位是每秒比特,表示为Quantity。例如,10M 表示每秒 10 兆比特。

kubernetes.io/egress-bandwidth

类型:注解

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

用于:Pod

Pod 的出站流量通过策略进行处理,该策略简单地丢弃超过配置速率的包。你对 Pod 设置的限制不会影响其他 Pod 的带宽。要限制 Pod 的带宽,请编写对象定义 JSON 文件并使用 kubernetes.io/egress-bandwidth 注解指定数据流量速度。用于指定出站速率的单位是每秒比特,表示为Quantity。例如,10M 表示每秒 10 兆比特。

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

类型:标签

node.kubernetes.io/instance-type

类型:标签

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

用于:节点

Kubelet 用云提供商定义的实例类型填充此值。仅当你使用云提供商时才会设置此值。此设置在你想将某些工作负载定位到某些实例类型时很有用,但通常你希望依赖 Kubernetes 调度程序执行基于资源的调度。你应该旨在基于属性而不是实例类型进行调度(例如:需要 GPU,而不是需要 g2.2xlarge)。

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

类型:标签

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

类型:标签

pv.kubernetes.io/bind-completed

类型:注解

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

用于:PersistentVolumeClaim

当此注解在 PersistentVolumeClaim (PVC) 上设置时,表示 PVC 的生命周期已通过初始绑定设置。如果存在此信息,则会改变控制平面解释 PVC 对象状态的方式。此注解的值对 Kubernetes 来说无关紧要。

pv.kubernetes.io/bound-by-controller

类型:注解

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

用于:PersistentVolume、PersistentVolumeClaim

如果在 PersistentVolume 或 PersistentVolumeClaim 上设置了此注解,则表示存储绑定(PersistentVolume → PersistentVolumeClaim,或 PersistentVolumeClaim → PersistentVolume)是由控制器安装的。如果未设置注解,并且存在存储绑定,则缺少该注解表示绑定是手动完成的。此注解的值无关紧要。

pv.kubernetes.io/provisioned-by

类型:注解

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

用于:PersistentVolume

此注解添加到由 Kubernetes 动态提供的 PersistentVolume (PV)。其值是创建卷的卷插件的名称。它既为用户(显示 PV 的来源)也为 Kubernetes(在其决策中识别动态提供的 PV)服务。

pv.kubernetes.io/migrated-to

类型:注解

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

用于:PersistentVolume、PersistentVolumeClaim

它添加到 PersistentVolume (PV) 和 PersistentVolumeClaim (PVC),这些卷应通过 CSIMigration 功能门控由其相应的 CSI 驱动程序动态提供/删除。设置此注解后,Kubernetes 组件将“待命”,external-provisioner 将对对象进行操作。

statefulset.kubernetes.io/pod-name

类型:标签

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

用于:Pod

当 StatefulSet 控制器为 StatefulSet 创建 Pod 时,控制平面会在该 Pod 上设置此标签。标签的值是正在创建的 Pod 的名称。

有关更多详细信息,请参阅 StatefulSet 主题中的Pod 名称标签

scheduler.alpha.kubernetes.io/node-selector

类型:注解

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

用于:命名空间

PodNodeSelector 使用此注解键将节点选择器分配给命名空间中的 Pod。

topology.kubernetes.io/region

类型:标签

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

用于:节点、PersistentVolume

请参阅topology.kubernetes.io/zone

topology.kubernetes.io/zone

类型:标签

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

用于:节点、PersistentVolume

在节点上kubelet 或外部 cloud-controller-manager 用云提供商的信息填充此值。仅当你使用云提供商时才会设置此值。但是,如果这在你的拓扑中合理,你可以考虑在节点上设置此值。

在 PersistentVolume 上:拓扑感知卷提供者将自动在 PersistentVolume 上设置节点亲和性约束。

区域表示逻辑故障域。Kubernetes 集群通常跨多个区域以提高可用性。虽然区域的确切定义留给基础设施实现,但区域的常见属性包括区域内网络延迟极低、区域内网络流量无成本以及与其他区域的故障独立性。例如,区域内的节点可能共享网络交换机,但不同区域的节点不应共享。

区域表示一个更大的域,由一个或多个可用区组成。Kubernetes 集群很少跨多个区域,虽然区域或区域的确切定义留给基础设施实现,但区域的常见属性包括它们之间比区域内更高的网络延迟、它们之间网络流量的非零成本以及与其他区域或区域的故障独立性。例如,区域内的节点可能共享电源基础设施(例如 UPS 或发电机),但不同区域的节点通常不会。

Kubernetes 对可用区和区域的结构做了一些假设

  1. 区域和可用区是分层的:可用区是区域的严格子集,并且没有可用区可以在 2 个区域中
  2. 可用区名称在区域之间是唯一的;例如,区域“africa-east-1”可能由可用区“africa-east-1a”和“africa-east-1b”组成

应该可以安全地假设拓扑标签不会改变。尽管标签是严格可变的,但它们的消费者可以假设给定节点不会在不被销毁和重新创建的情况下在可用区之间移动。

Kubernetes 可以通过多种方式使用此信息。例如,调度程序会自动尝试将 ReplicaSet 中的 Pod 分散到单区域集群中的节点上(以减少节点故障的影响,请参阅kubernetes.io/hostname)。对于多区域集群,此分散行为也适用于区域(以减少区域故障的影响)。这是通过 SelectorSpreadPriority 实现的。

SelectorSpreadPriority 是一种尽力而为的放置。如果集群中的区域是异构的(例如:不同数量的节点、不同类型的节点或不同的 Pod 资源要求),此放置可能会阻止 Pod 在区域之间的均匀分布。如果需要,你可以使用同构区域(相同数量和类型的节点)来降低不均匀分布的可能性。

调度程序(通过 VolumeZonePredicate 谓词)还将确保声明给定卷的 Pod 仅放置在与该卷相同的区域中。卷不能跨区域附加。

如果 PersistentVolumeLabel 不支持 PersistentVolume 的自动标记,你应该考虑手动添加标签(或添加对 PersistentVolumeLabel 的支持)。使用 PersistentVolumeLabel,调度程序会阻止 Pod 挂载不同区域中的卷。如果你的基础设施没有此约束,则根本不需要向卷添加区域标签。

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

类型:注解

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

用于:PersistentVolumeClaim

此注解自 v1.23 起已弃用。请参阅volume.kubernetes.io/storage-provisioner

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

类型:注解

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

用于:PersistentVolume、PersistentVolumeClaim

此注解可用于 PersistentVolume (PV) 或 PersistentVolumeClaim (PVC),以指定 StorageClass 的名称。当 storageClassName 属性和 volume.beta.kubernetes.io/storage-class 注解都指定时,注解 volume.beta.kubernetes.io/storage-class 优先于 storageClassName 属性。

此注解已弃用。请改用为 PersistentVolumeClaim 或 PersistentVolume 设置storageClassName 字段

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

类型:注解

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

用于:PersistentVolume

Kubernetes 管理员可以指定当 PersistentVolume 挂载到节点时额外的挂载选项

volume.kubernetes.io/storage-provisioner

类型:注解

用于:PersistentVolumeClaim

此注解添加到应动态提供的 PVC。其值是应为此 PVC 提供卷的卷插件的名称。

volume.kubernetes.io/selected-node

类型:注解

用于:PersistentVolumeClaim

此注解添加到由调度程序触发动态提供的 PVC。其值是所选节点的名称。

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

类型:注解

用于:节点

如果节点具有注解 volumes.kubernetes.io/controller-managed-attach-detach,则其存储附加和分离操作由 volume attach/detach 控制器管理。

注解的值不重要。

node.kubernetes.io/windows-build

类型:标签

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

用于:节点

当 kubelet 在 Microsoft Windows 上运行时,它会自动标记其节点以记录正在使用的 Windows Server 版本。

标签的值采用“MajorVersion.MinorVersion.BuildNumber”格式。

storage.alpha.kubernetes.io/migrated-plugins

类型:注解

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

用于:CSINode(扩展 API)

此注解自动添加到映射到安装 CSIDriver 的节点的 CSINode 对象。此注解显示已迁移插件的树内插件名称。其值取决于集群的树内云提供商存储类型。

例如,如果树内云提供商存储类型是 CSIMigrationvSphere,则节点的 CSINodes 实例应更新为:storage.alpha.kubernetes.io/migrated-plugins: "kubernetes.io/vsphere-volume"

service.kubernetes.io/headless

类型:标签

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

用于:Endpoints

当所属 Service 是无头 Service 时,控制平面会将此标签添加到 Endpoints 对象。要了解更多信息,请阅读无头服务

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

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

用于:Service

此注解用于在服务上启用拓扑感知提示。拓扑感知提示后来更名为:此概念现在称为拓扑感知路由。在服务上将注解设置为 Auto,配置 Kubernetes 控制平面以在与该服务关联的 EndpointSlices 上添加拓扑提示。你还可以显式将注解设置为 Disabled

如果你运行的 Kubernetes 版本早于 1.34,请查阅该 Kubernetes 版本的文档以了解拓扑感知路由在该版本中的工作方式。

此注解没有其他有效值。如果你不希望服务具有拓扑感知提示,请不要添加此注解。

service.kubernetes.io/topology-mode

类型:注解

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

用于:Service

此注解提供了一种定义服务如何处理网络拓扑的方法;例如,你可以配置服务,以便 Kubernetes 优先将客户端和服务器之间的流量保持在单个拓扑区域内。在某些情况下,这有助于降低成本或提高网络性能。

有关更多详细信息,请参阅拓扑感知路由

kubernetes.io/service-name

类型:标签

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

用于:EndpointSlice

Kubernetes 使用此标签将EndpointSlices服务关联起来。

此标签记录了 EndpointSlice 支持的服务的名称。所有 EndpointSlices 都应将此标签设置为其关联服务的名称。

kubernetes.io/service-account.name

类型:注解

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

用于:Secret

此注解记录了令牌(存储在 kubernetes.io/service-account-token 类型的 Secret 中)表示的 ServiceAccount 的唯一 ID

kubernetes.io/service-account.uid

类型:注解

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

用于:Secret

此注解记录了令牌(存储在 kubernetes.io/service-account-token 类型的 Secret 中)表示的 ServiceAccount 的唯一 ID

kubernetes.io/legacy-token-last-used

类型:标签

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

用于:Secret

控制平面仅将此标签添加到类型为 kubernetes.io/service-account-token 的 Secret。此标签的值记录了控制平面上次看到客户端使用服务帐户令牌进行身份验证的请求的日期(ISO 8601 格式,UTC 时区)。

如果旧版令牌在集群获得该功能之前(在 Kubernetes v1.26 中添加)最后使用,则不设置该标签。

kubernetes.io/legacy-token-invalid-since

类型:标签

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

用于:Secret

控制平面自动将此标签添加到类型为 kubernetes.io/service-account-token 的自动生成 Secret。此标签将基于 Secret 的令牌标记为无效,不能用于身份验证。此标签的值记录了控制平面检测到自动生成 Secret 在指定持续时间(默认为一年)内未使用时的日期(ISO 8601 格式,UTC 时区)。

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

类型:标签

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

用于:Endpoints

此标签内部用于标记由 Kubernetes 创建的 Endpoints 对象(与用户或外部控制器创建的 Endpoints 相对)。

endpointslice.kubernetes.io/managed-by

类型:标签

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

用于:EndpointSlices

此标签用于标识管理 EndpointSlice 的控制器或实体。此标签旨在使同一集群中不同的 EndpointSlice 对象能够由不同的控制器或实体管理。值 endpointslice-controller.k8s.io 表示由 Kubernetes 自动为具有选择器的 Service 创建的 EndpointSlice 对象。

endpointslice.kubernetes.io/skip-mirror

类型:标签

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

用于:Endpoints

可以在 Endpoints 资源上将此标签设置为 "true",以指示 EndpointSliceMirroring 控制器不应将此资源与 EndpointSlice 对象进行镜像。

service.kubernetes.io/service-proxy-name

类型:标签

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

用于:Service

为该标签设置值会告诉 kube-proxy 忽略此服务进行代理。这允许为此服务使用替代代理实现(例如,运行以自己的方式管理 nftables 的 DaemonSet)。使用此字段可以同时激活多个替代代理实现,例如,为每个替代代理实现设置一个唯一值以负责其各自的服务。

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

类型:注解

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

用于:Pod

此注解用于通过 Hyper-V 隔离运行 Windows 容器。

ingressclass.kubernetes.io/is-default-class

类型:注解

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

用于:IngressClass

当 IngressClass 资源将此注解设置为 "true" 时,没有指定类的新的 Ingress 资源将被分配此默认类。

nginx.ingress.kubernetes.io/configuration-snippet

类型:注解

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

用于:Ingress

你可以使用此注解在使用 NGINX Ingress Controller 的 Ingress 上设置额外的配置。默认情况下,从 ingress controller 1.9.0 版本开始,configuration-snippet 注解会被忽略。必须显式启用 NGINX ingress controller 设置 allow-snippet-annotations. 才能使用此注解。在多租户集群中启用此注解可能很危险,因为它可能导致权限有限的人员能够检索集群中的所有 Secret。

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

类型:注解

用于:Ingress

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

类型:标签

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

用于:Service

如果值为 true,此标签表示该 Service 为集群提供服务。当你运行 kubectl cluster-info 时,该工具会查询设置为 true 的 Services。

但是,在任何 Service 上设置此标签都已弃用。

storageclass.kubernetes.io/is-default-class

类型:注解

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

用于:StorageClass

当单个 StorageClass 资源将此注解设置为 "true" 时,没有指定类的新 PersistentVolumeClaim 资源将被分配此默认类。

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

类型:注解

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

用于:节点

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

当 kubelet 启动时设置了 --cloud-provider 标志(包括外部和旧版树内云提供商),它会在 Node 上设置此注解,以表示从命令行标志(--node-ip)设置的 IP 地址。此 IP 由 cloud-controller-manager 验证为对云提供商有效。

batch.kubernetes.io/job-completion-index

类型:注解、标签

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

用于:Pod

kube-controller-manager 中的 Job 控制器将其设置为使用索引完成模式创建的 Pod 的标签和注解。

请注意,必须启用 PodIndexLabel 功能门,才能将其作为 Pod **标签**添加,否则它将只是一个注解。

batch.kubernetes.io/cronjob-scheduled-timestamp

类型:注解

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

用于:由 CronJobs 控制的 Jobs 和 Pods

当 Job 是 CronJob 的一部分时,此注解用于记录 Job 的原始(预期)创建时间戳。控制平面将该时间戳设置为 RFC3339 格式。如果 Job 属于指定了时区的 CronJob,则时间戳在该时区。否则,时间戳以控制器管理器的本地时间为准。

kubectl.kubernetes.io/default-container

类型:注解

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

注解的值是此 Pod 的默认容器名称。例如,不带 -c--container 标志的 kubectl logskubectl exec 将使用此默认容器。

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

类型:注解

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

注解的值是此 Pod 的默认日志容器名称。例如,不带 -c--container 标志的 kubectl logs 将使用此默认容器。

kubectl.kubernetes.io/last-applied-configuration

类型:注解

示例:见以下片段

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

用于:所有对象

kubectl 命令行工具使用此注解作为跟踪更改的旧机制。该机制已被Server-side Apply取代。

kubectl.kubernetes.io/restartedAt

类型:注解

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

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

此注解包含资源(Deployment、ReplicaSet、StatefulSet 或 DaemonSet)的最新重启时间,其中 kubectl 触发了回滚以强制创建新的 Pod。命令 kubectl rollout restart <RESOURCE> 通过使用此注解修补所有资源 Pod 的模板元数据来触发重启。在上述示例中,最新重启时间显示为 2024 年 6 月 21 日 17:27:41 UTC。

你不应假定此注解表示最新更新的日期/时间;自上次手动触发回滚以来,可能已发生单独的更改。

如果你手动在 Pod 上设置此注解,则不会发生任何事情。重启的副作用来自工作负载管理和 Pod 模板的工作方式。

endpoints.kubernetes.io/over-capacity

类型:注解

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

用于:Endpoints

控制平面将此注解添加到 Endpoints 对象,如果关联的Service 具有超过 1000 个后端端点。此注解表示 Endpoints 对象已超容量,并且端点数量已截断为 1000。

如果后端端点数量低于 1000,控制平面将移除此注解。

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

类型:注解

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

用于:Endpoints

此注解设置为表示时间戳的 Endpoints 对象(时间戳以 RFC 3339 日期时间字符串格式存储。例如,'2018-10-22T19:32:52.1Z')。这是 Pod 或 Service 对象中导致 Endpoints 对象更改的最后一次更改的时间戳。

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

类型:注解

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

用于:Endpoints

控制平面之前在 Endpoints 对象上设置了注解。此注解提供了以下详细信息:

  • 谁是当前的领导者。
  • 获得当前领导权的时间。
  • 租约(领导权)的持续时间(秒)。
  • 当前租约(当前领导权)应续订的时间。
  • 过去发生的领导权转换次数。

Kubernetes 现在使用租约来管理 Kubernetes 控制平面的领导者分配。

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

类型:注解

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

用于:Jobs

Job 上此注解的存在曾表示控制平面正在使用终结器跟踪 Job 状态。添加或删除此注解不再有效(Kubernetes v1.27 及更高版本)。所有 Job 都使用终结器进行跟踪。

job-name (已弃用)

类型:标签

示例:job-name: "pi"

用于:由 Jobs 控制的 Jobs 和 Pods

controller-uid (已弃用)

类型:标签

示例:controller-uid: "$UID"

用于:由 Jobs 控制的 Jobs 和 Pods

batch.kubernetes.io/job-name

类型:标签

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

用于:由 Jobs 控制的 Jobs 和 Pods

此标签作为一种用户友好的方式,用于获取与 Job 对应的 Pod。job-name 来自 Job 的 name,并提供了一种简单的方式来获取与 Job 对应的 Pod。

batch.kubernetes.io/controller-uid

类型:标签

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

用于:由 Jobs 控制的 Jobs 和 Pods

此标签作为一种编程方式,用于获取与 Job 对应的所有 Pod。
controller-uid 是一个唯一的标识符,它设置在 selector 字段中,以便 Job 控制器可以获取所有对应的 Pod。

scheduler.alpha.kubernetes.io/defaultTolerations

类型:注解

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

用于:命名空间

此注解要求启用 PodTolerationRestriction 准入控制器。此注解键允许将容忍度分配给命名空间,并且在该命名空间中创建的任何新 Pod 都将添加这些容忍度。

scheduler.alpha.kubernetes.io/tolerationsWhitelist

类型:注解

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

用于:命名空间

此注解仅在启用(Alpha)PodTolerationRestriction 准入控制器时有用。注解的值是一个 JSON 文档,它定义了其注解的命名空间允许的容忍度列表。当你创建 Pod 或修改其容忍度时,API 服务器会检查容忍度以查看它们是否在允许列表中。只有在检查成功时才允许 Pod。

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

类型:注解

用于:节点

此注解需要启用 NodePreferAvoidPods 调度插件。该插件自 Kubernetes 1.22 起已弃用。请改用 污点和容忍度

node.kubernetes.io/not-ready

类型:污点

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

用于:节点

节点控制器通过监视节点的健康状况来检测节点是否就绪,并相应地添加或移除此污点。

node.kubernetes.io/unreachable

类型:污点

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

用于:节点

节点条件 ReadyUnknown 时,节点控制器将此污点添加到节点。

node.kubernetes.io/unschedulable

类型:污点

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

用于:节点

在初始化节点时,为了避免竞争条件,将向节点添加此污点。

node.kubernetes.io/memory-pressure

类型:污点

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

用于:节点

kubelet 根据在节点上观察到的 memory.availableallocatableMemory.available 来检测内存压力。然后将观察到的值与可在 kubelet 上设置的相应阈值进行比较,以确定是否应添加/移除节点条件和污点。

node.kubernetes.io/disk-pressure

类型:污点

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

用于:节点

kubelet 根据在节点上观察到的 imagefs.availableimagefs.inodesFreenodefs.availablenodefs.inodesFree(仅限 Linux)来检测磁盘压力。然后将观察到的值与可在 kubelet 上设置的相应阈值进行比较,以确定是否应添加/移除节点条件和污点。

node.kubernetes.io/network-unavailable

类型:污点

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

用于:节点

当使用的云提供商指示需要额外的网络配置时,kubelet 最初会设置此项。只有当云上的路由配置正确时,云提供商才会移除此污点。

node.kubernetes.io/pid-pressure

类型:污点

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

用于:节点

kubelet 检查 /proc/sys/kernel/pid_max 的大小与 Kubernetes 在节点上消耗的 PID 之间的差值,以获取可用 PID 的数量,该数量被称为 pid.available 指标。然后将该指标与可在 kubelet 上设置的相应阈值进行比较,以确定是否应添加/移除节点条件和污点。

node.kubernetes.io/out-of-service

类型:污点

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

用于:节点

用户可以手动向节点添加此污点,将其标记为“服务中断”。如果节点被标记为“服务中断”并带有此污点,则如果节点上没有匹配的容忍度,Pod 将被强制删除,并且终止在该节点上的 Pod 的卷分离操作将立即发生。这使得服务中断节点上的 Pod 能够快速在另一个节点上恢复。

node.cloudprovider.kubernetes.io/uninitialized

类型:污点

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

用于:节点

当 kubelet 使用“外部”云提供商启动时,此污点会设置在节点上,将其标记为不可用,直到云控制器管理器的控制器初始化此节点,然后移除该污点。

node.cloudprovider.kubernetes.io/shutdown

类型:污点

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

用于:节点

如果节点处于云提供商指定的关机状态,则该节点将相应地被 node.cloudprovider.kubernetes.io/shutdown 污点标记,污点效果为 NoSchedule

feature.node.kubernetes.io/*

类型:标签

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

用于:节点

这些标签由节点特性发现 (NFD) 组件使用,以在节点上宣传特性。所有内置标签都使用 feature.node.kubernetes.io 标签命名空间,并具有 feature.node.kubernetes.io/<feature-name>: "true" 格式。NFD 有许多扩展点用于创建供应商和应用程序特定的标签。有关详细信息,请参阅自定义指南

nfd.node.kubernetes.io/master.version

类型:注解

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

用于:节点

对于调度了节点特性发现 (NFD) master 的节点,此注解记录 NFD master 的版本。它仅用于信息目的。

nfd.node.kubernetes.io/worker.version

类型:注解

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

用于:节点

此注解记录在节点上运行的节点特性发现 worker 的版本。它仅用于信息目的。

nfd.node.kubernetes.io/feature-labels

类型:注解

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

用于:节点

此注解记录由 节点特性发现 (NFD) 管理的以逗号分隔的节点特性标签列表。NFD 将此用于内部机制。你不应自行编辑此注解。

nfd.node.kubernetes.io/extended-resources

类型:注解

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

用于:节点

此注解记录由 节点特性发现 (NFD) 管理的以逗号分隔的扩展资源列表。NFD 将此用于内部机制。你不应自行编辑此注解。

nfd.node.kubernetes.io/node-name

类型:标签

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

用于:节点

它指定 NodeFeature 对象所针对的节点。NodeFeature 对象的创建者必须设置此标签,并且对象的使用者应该使用此标签来过滤为特定节点指定的特性。

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

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

用于:Service

云控制器管理器与 AWS 弹性负载均衡的集成根据此注解配置服务的负载均衡器。该值确定负载均衡器写入日志条目的频率。例如,如果将值设置为 5,则日志写入每 5 秒发生一次。

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

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

用于:Service

云控制器管理器与 AWS 弹性负载均衡的集成根据此注解配置服务的负载均衡器。如果将注解设置为“true”,则启用访问日志记录。

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

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

用于:Service

云控制器管理器与 AWS 弹性负载均衡的集成根据此注解配置服务的负载均衡器。负载均衡器将日志写入你指定的名称的 S3 存储桶。

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

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

用于:Service

云控制器管理器与 AWS 弹性负载均衡的集成根据此注解配置服务的负载均衡器。负载均衡器使用你指定的带前缀的日志对象写入日志。

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

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

用于:Service

云控制器管理器与 AWS 弹性负载均衡的集成根据此注解值中的逗号分隔的键/值对为负载均衡器配置标签(AWS 概念)。

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

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

用于:Service

AWS 负载均衡器控制器使用此注解。请参阅 AWS 负载均衡器控制器文档中的注解

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

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

用于:Service

AWS 负载均衡器控制器使用此注解。请参阅 AWS 负载均衡器控制器文档中的注解

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

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

用于:Service

云控制器管理器与 AWS 弹性负载均衡的集成根据此注解的值配置负载均衡器侦听器。

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

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

用于:Service

云控制器管理器与 AWS 弹性负载均衡的集成根据此注解配置负载均衡器。负载均衡器的连接耗尽设置取决于你设置的值。

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

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

用于:Service

如果你为 type: LoadBalancer 的 Service 配置了连接耗尽,并且使用 AWS 云,则集成会根据此注解配置耗尽周期。你设置的值决定了耗尽超时时间(秒)。

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

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

用于:Service

AWS 负载均衡器控制器使用此注解。请参阅 AWS 负载均衡器控制器文档中的注解

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

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

用于:Service

云控制器管理器与 AWS 弹性负载均衡的集成根据此注解配置负载均衡器。负载均衡器具有配置的空闲超时时间(秒),适用于其连接。如果在空闲超时时间过后没有发送或接收数据,负载均衡器将关闭连接。

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

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

用于:Service

云控制器管理器与 AWS 弹性负载均衡的集成根据此注解配置负载均衡器。如果将此注解设置为“true”,则每个负载均衡器节点会将请求均匀地分布到所有启用的可用区中的注册目标。如果禁用跨区域负载均衡,则每个负载均衡器节点仅将其请求均匀地分布到其可用区中的注册目标。

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

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

用于:Service

云控制器管理器与 AWS 弹性负载均衡的集成根据此注解配置负载均衡器。该值是弹性 IP 地址分配 ID 的逗号分隔列表。

此注解仅与 type: LoadBalancer 的 Service 相关,其中负载均衡器是 AWS 网络负载均衡器。

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

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

用于:Service

云控制器管理器与 AWS 弹性负载均衡的集成根据此注解配置负载均衡器。注解值是为负载均衡器配置的额外 AWS VPC 安全组的逗号分隔列表。

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

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

用于:Service

云控制器管理器与 AWS 弹性负载均衡的集成根据此注解配置负载均衡器。注解值指定后端被认为对流量健康的连续成功健康检查的数量。

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

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

用于:Service

云控制器管理器与 AWS 弹性负载均衡的集成根据此注解配置负载均衡器。注解值指定负载均衡器进行健康检查探测之间的时间间隔(秒)。

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

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

用于:Service

云控制器管理器与 AWS 弹性负载均衡的集成根据此注解配置负载均衡器。注解值确定用于 HTTP 健康检查的 URL 的路径部分。

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

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

用于:Service

云控制器管理器与 AWS 弹性负载均衡的集成根据此注解配置负载均衡器。注解值确定负载均衡器在执行健康检查时连接的端口。

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

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

用于:Service

云控制器管理器与 AWS 弹性负载均衡的集成根据此注解配置负载均衡器。注解值确定负载均衡器如何检查后端目标的健康状况。

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

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

用于:Service

云控制器管理器与 AWS 弹性负载均衡的集成根据此注解配置负载均衡器。注解值指定探测尚未成功之前自动视为失败的秒数。

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

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

用于:Service

云控制器管理器与 AWS 弹性负载均衡的集成根据此注解配置负载均衡器。注解值指定后端被认为对流量不健康的连续不成功健康检查的数量。

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

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

用于:Service

云控制器管理器与 AWS 弹性负载均衡的集成根据此注解配置负载均衡器。当你将此注解设置为“true”时,集成会配置一个内部负载均衡器。

如果你使用 AWS 负载均衡器控制器,请参阅 service.beta.kubernetes.io/aws-load-balancer-scheme

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

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

用于:Service

AWS 负载均衡器控制器使用此注解。请参阅 AWS 负载均衡器控制器文档中的注解

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

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

用于:Service

如果你在 Service 上设置此注解,并且还使用 service.beta.kubernetes.io/aws-load-balancer-type: "external" 注解该 Service,并且你在集群中使用了 AWS 负载均衡器控制器,则 AWS 负载均衡器控制器将该负载均衡器的名称设置为你为*此*注解设置的值。

请参阅 AWS 负载均衡器控制器文档中的注解

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

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

用于:Service

AWS 负载均衡器控制器使用此注解。请参阅 AWS 负载均衡器控制器文档中的注解

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

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

用于:Service

AWS 负载均衡器控制器使用此注解。请参阅 AWS 负载均衡器控制器文档中的注解

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

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

用于:Service

Kubernetes 与 AWS 弹性负载均衡的官方集成根据此注解配置负载均衡器。唯一允许的值是 "*",这表示负载均衡器应使用 PROXY 协议包装到后端 Pod 的 TCP 连接。

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

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

用于:Service

AWS 负载均衡器控制器使用此注解。请参阅 AWS 负载均衡器控制器文档中的注解

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

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

用于:Service

AWS 负载均衡器控制器使用此注解来指定要附加到 AWS 负载均衡器的逗号分隔安全组列表。支持安全组的名称和 ID,其中名称匹配 Name 标签,而不是 groupName 属性。

将此注解添加到 Service 时,负载均衡器控制器会将注解引用的安全组附加到负载均衡器。如果省略此注解,AWS 负载均衡器控制器会自动创建一个新的安全组并将其附加到负载均衡器。

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

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

用于:Service

AWS 负载均衡器控制器使用此注解。你应该改为为 Service 设置 .spec.loadBalancerSourceRanges

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

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

用于:Service

与 AWS 弹性负载均衡的官方集成根据此注解为 type: LoadBalancer 的 Service 配置 TLS。注解的值是负载均衡器侦听器应使用的 X.509 证书的 AWS 资源名称 (ARN)。

(TLS 协议基于旧版技术,简称为 SSL。)

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

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

与 AWS 弹性负载均衡的官方集成根据此注解为 type: LoadBalancer 的 Service 配置 TLS。注解的值是用于与客户端对等方协商 TLS 的 AWS 策略名称。

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

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

与 AWS 弹性负载均衡的官方集成根据此注解为 type: LoadBalancer 的 Service 配置 TLS。注解的值可以是 "*"(表示所有负载均衡器端口都应使用 TLS),也可以是逗号分隔的端口号列表。

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

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

Kubernetes 与 AWS 的官方集成使用此注解来配置负载均衡器并确定在哪些 AWS 可用区中部署托管负载均衡服务。该值是子网名称的逗号分隔列表,或子网 ID 的逗号分隔列表。

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

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

用于:Service

AWS 负载均衡器控制器使用此注解。请参阅 AWS 负载均衡器控制器文档中的注解

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

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

Kubernetes 与 AWS 的官方集成使用此注解来确定集群中的哪些节点应被视为负载均衡器的有效目标。

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

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

Kubernetes 与 AWS 的官方集成使用此注解来确定 AWS 云提供商集成是否应管理 type: LoadBalancer 的 Service。

有两个允许的值:

nlb
云控制器管理器配置网络负载均衡器
external
云控制器管理器不配置任何负载均衡器

如果你在 AWS 上部署 type: LoadBalancer 的 Service,并且未设置任何 service.beta.kubernetes.io/aws-load-balancer-type 注解,则 AWS 集成将部署经典的弹性负载均衡器。在没有注解的情况下,此行为是默认行为,除非你另行指定。

当你在 type: LoadBalancer 的 Service 上将此注解设置为 external,并且你的集群中具有正常工作的 AWS 负载均衡器控制器部署时,AWS 负载均衡器控制器将尝试根据 Service 规范部署负载均衡器。

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

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

用于:Service

此注解仅适用于由 Azure 标准负载均衡器支持的服务。此注解用于 Service,以指定负载均衡器是否应禁用或启用空闲超时时的 TCP 重置。如果启用,它有助于应用程序表现得更可预测,检测连接终止,删除过期连接并启动新连接。你可以将值设置为 true 或 false。

有关更多信息,请参阅负载均衡器 TCP 重置

pod-security.kubernetes.io/enforce

类型:标签

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

用于:命名空间

值**必须**是 privilegedbaselinerestricted 之一,它们对应于Pod 安全标准级别。具体来说,enforce 标签会禁止在标记的命名空间中创建任何不符合指定级别要求的 Pod。

有关更多信息,请参阅在命名空间级别实施 Pod 安全

pod-security.kubernetes.io/enforce-version

类型:标签

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

用于:命名空间

值**必须**是 latest 或格式为 v<major>.<minor> 的有效 Kubernetes 版本。这决定了验证 Pod 时应用的Pod 安全标准策略的版本。

有关更多信息,请参阅在命名空间级别实施 Pod 安全

pod-security.kubernetes.io/audit

类型:标签

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

用于:命名空间

值**必须**是 privilegedbaselinerestricted 之一,它们对应于Pod 安全标准级别。具体来说,audit 标签不会阻止在标记的命名空间中创建不符合指定级别要求的 Pod,但会将此注解添加到 Pod。

有关更多信息,请参阅在命名空间级别实施 Pod 安全

pod-security.kubernetes.io/audit-version

类型:标签

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

用于:命名空间

值**必须**是 latest 或格式为 v<major>.<minor> 的有效 Kubernetes 版本。这决定了验证 Pod 时应用的Pod 安全标准策略的版本。

有关更多信息,请参阅在命名空间级别实施 Pod 安全

pod-security.kubernetes.io/warn

类型:标签

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

用于:命名空间

值**必须**是 privilegedbaselinerestricted 之一,它们对应于Pod 安全标准级别。具体来说,warn 标签不会阻止在标记的命名空间中创建不符合指定级别要求的 Pod,但在创建后会向用户返回警告。请注意,在创建或更新包含 Pod 模板的对象(例如 Deployments、Jobs、StatefulSets 等)时也会显示警告。

有关更多信息,请参阅在命名空间级别实施 Pod 安全

pod-security.kubernetes.io/warn-version

类型:标签

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

用于:命名空间

值**必须**是 latest 或格式为 v<major>.<minor> 的有效 Kubernetes 版本。这决定了验证提交的 Pod 时应用的Pod 安全标准策略的版本。请注意,在创建或更新包含 Pod 模板的对象(例如 Deployments、Jobs、StatefulSets 等)时也会显示警告。

有关更多信息,请参阅在命名空间级别实施 Pod 安全

rbac.authorization.kubernetes.io/autoupdate

类型:注解

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

用于:ClusterRole、ClusterRoleBinding、Role、RoleBinding

当 API 服务器创建的默认 RBAC 对象上的此注解设置为 "true" 时,它们会在服务器启动时自动更新以添加缺失的权限和主体(额外的权限和主体保留不变)。要防止自动更新特定的角色或角色绑定,请将此注解设置为 "false"。如果你创建自己的 RBAC 对象并将此注解设置为 "false",则 kubectl auth reconcile(它允许在清单中协调任意 RBAC 对象)会遵守此注解,并且不会自动添加缺失的权限和主体。

kubernetes.io/psp (已弃用)

类型:注解

示例:kubernetes.io/psp: restricted

用于:Pod

此注解仅与你使用PodSecurityPolicy对象有关。Kubernetes v1.34 不支持 PodSecurityPolicy API。

当 PodSecurityPolicy 准入控制器准入 Pod 时,准入控制器会修改 Pod 以具有此注解。注解的值是用于验证的 PodSecurityPolicy 的名称。

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

类型:注解

用于:Pod

Kubernetes v1.25 之前允许你使用此注解配置 seccomp 行为。请参阅使用 seccomp 限制容器的系统调用以了解指定 Pod 的 seccomp 限制的受支持方法。

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

类型:注解

用于:Pod

Kubernetes v1.25 之前允许你使用此注解配置 seccomp 行为。请参阅使用 seccomp 限制容器的系统调用以了解指定 Pod 的 seccomp 限制的受支持方法。

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

类型:注解

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

用于:VolumeSnapshotContent

值可以是 truefalse。这决定了当从 VolumeSnapshot 创建 PersistentVolumeClaim 时,用户是否可以修改源卷的模式。

有关更多信息,请参阅转换快照的卷模式Kubernetes CSI 开发者文档

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

类型:注解

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

用于:Pod

此注解让 Kubernetes 控制平面了解 Pod 是关键 Pod,因此调度器不会移除此 Pod。

jobset.sigs.k8s.io/jobset-name

类型:标签、注解

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

用于:Jobs、Pods

此标签/注解用于存储 Job 或 Pod 所属的 JobSet 的名称。JobSet 是你可以部署到 Kubernetes 集群中的扩展 API。

jobset.sigs.k8s.io/replicatedjob-replicas

类型:标签、注解

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

用于:Jobs、Pods

此标签/注解指定 ReplicatedJob 的副本数量。

jobset.sigs.k8s.io/replicatedjob-name

类型:标签、注解

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

用于:Jobs、Pods

此标签或注解存储此 Job 或 Pod 所属的复制作业的名称。

jobset.sigs.k8s.io/job-index

类型:标签、注解

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

用于:Jobs、Pods

此标签/注解由 JobSet 控制器在子 Job 和 Pod 上设置。它包含其父 ReplicatedJob 中 Job 副本的索引。

jobset.sigs.k8s.io/job-key

类型:标签、注解

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

用于:Jobs、Pods

JobSet 控制器在 JobSet 的子 Job 和 Pod 上设置此标签(以及具有相同键的注解)。该值是命名空间 Job 名称的 SHA256 哈希值。

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

类型:注解

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

用于:JobSets、Jobs

你可以在 JobSet 上设置此标签/注解,以确保每个拓扑组的 Job 独占放置。你还可以在复制 Job 模板上定义此标签或注解。阅读 JobSet 的文档以了解更多信息。

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

类型:注解

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

用于:Jobs、Pods

此标签/注解可应用于 JobSet。设置后,JobSet 控制器会通过添加节点选择器和容忍度来修改 Job 及其相应的 Pod。这可确保每个拓扑域的 Job 独占放置,根据策略将这些 Pod 的调度限制到特定节点。

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

类型:标签

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

用于:节点

此标签是手动设置的,或自动设置的(例如,集群自动扩缩器)在节点上。当 alpha.jobset.sigs.k8s.io/node-selector 设置为 "true" 时,JobSet 控制器会向此节点标签添加一个节点选择器(以及对污点 alpha.jobset.sigs.k8s.io/no-schedule 的容忍度,接下来讨论)。

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

类型:污点

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

用于:节点

此污点是手动设置的,或自动设置的(例如,集群自动扩缩器)在节点上。当 alpha.jobset.sigs.k8s.io/node-selector 设置为 "true" 时,JobSet 控制器会向此节点污点添加一个容忍度(以及对标签 alpha.jobset.sigs.k8s.io/namespaced-job 的节点选择器,前面已讨论)。

jobset.sigs.k8s.io/coordinator

类型:注解、标签

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

用于:Jobs、Pods

如果 JobSet 规范定义了 .spec.coordinator 字段,则此注解/标签用于 Job 和 Pod,以存储协调器 Pod 可访问的稳定网络端点。

用于审计的注解

有关详细信息,请参阅审计注解

kubeadm

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

类型:注解

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

用于:节点

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

类型:注解

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

用于:Pod

kubeadm 放置在本地管理的 etcd Pod 上的注解,用于跟踪 etcd 客户端应连接的 URL 列表。这主要用于 etcd 集群健康检查目的。

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

类型:注解

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

用于:Pod

kubeadm 放置在本地管理的 kube-apiserver Pod 上的注解,用于跟踪该 API 服务器实例公开的广播地址/端口端点。

kubeadm.kubernetes.io/component-config.hash

类型:注解

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

用于:ConfigMap

kubeadm 放置在它管理用于配置组件的 ConfigMap 上的注解。它包含一个哈希 (SHA-256),用于确定用户是否为特定组件应用了与 kubeadm 默认值不同的设置。

node-role.kubernetes.io/control-plane

类型:标签

用于:节点

一个标记标签,用于指示节点用于运行控制平面组件。kubeadm 工具将此标签应用于其管理的控制平面节点。其他集群管理工具通常也会设置此污点。

你可以使用此标签标记控制平面节点,以便更轻松地将 Pod 仅调度到这些节点上,或者避免在控制平面上运行 Pod。如果设置了此标签,EndpointSlice 控制器在计算拓扑感知提示时会忽略该节点。

node-role.kubernetes.io/*

类型:标签

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

用于:节点

当你想要标记节点角色时,此可选标签会应用于节点。节点角色(标签键中 / 后面的文本)可以设置,只要整个键遵循对象标签的语法规则。

Kubernetes 定义了一个特定的节点角色,**control-plane**。你可以用来标记该节点角色的标签是node-role.kubernetes.io/control-plane

node-role.kubernetes.io/control-plane

类型:污点

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

用于:节点

kubeadm 在控制平面节点上应用的污点,以限制 Pod 的放置,并只允许特定的 Pod 调度到它们上。

如果应用此污点,控制平面节点只允许调度关键工作负载。你可以在特定节点上手动使用以下命令移除此污点。

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

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

类型:污点

用于:节点

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

kubeadm 以前在控制平面节点上应用的污点,只允许关键工作负载调度到它们上。已被node-role.kubernetes.io/control-plane 污点取代。kubeadm 不再设置或使用此已弃用的污点。

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

类型:标签

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

用于:命名空间

用于在命名空间内授予对某些 resource.k8s.io API 类型的管理访问权限。当此标签在命名空间上设置为值 "true"(区分大小写)时,它允许在任何命名空间的 resource.k8s.io API 类型中使用 adminAccess: true。目前,此权限适用于 ResourceClaimResourceClaimTemplate 对象。

有关更多信息,请参阅动态资源分配管理访问

最后修改时间:2025 年 7 月 1 日 晚上 10:34(太平洋标准时间):DRAAdminAccess: 更新 v1.34 (6611158ea9)