众所周知的标签、注释和污点
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.31,您可以在 Secrets、ConfigMaps 或自定义资源上使用此注释,如果定义它们的 自定义资源定义 有 applyset.kubernetes.io/is-parent-type
标签。
用于实现 基于 ApplySet 的 kubectl 中的修剪 的规范的一部分。此注释应用于用于跟踪 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.31,您可以在 Secrets、ConfigMaps 或自定义资源上使用此注释,如果定义它们的 CustomResourceDefinition 有 applyset.kubernetes.io/is-parent-type
标签。
用于实现 基于 ApplySet 的 kubectl 中的修剪 的规范的一部分。此注释应用于用于跟踪 ApplySet 的父对象,以优化 ApplySet 成员对象的列表。它在 ApplySet 规范中是可选的,因为工具可以执行发现或使用其他优化。但是,从 Kubernetes 版本 1.31 开始,它由 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.31,您可以在 Secrets、ConfigMaps 或自定义资源上使用此注释,如果定义它们的 CustomResourceDefinition 有 applyset.kubernetes.io/is-parent-type
标签。
用于实现 基于 ApplySet 的 kubectl 中的修剪 的规范的一部分。此注释应用于用于跟踪 ApplySet 的父对象,以优化 ApplySet 成员对象的列表。它在 ApplySet 规范中是可选的,因为工具可以执行发现或使用其他优化。但是,在 Kubernetes 版本 1.31 中,它由 kubectl 要求。如果存在,此注释的值必须是逗号分隔的组种类列表,采用完全限定的名称格式,即 <resource>.<group>
。
注意
此注释当前已弃用,并被applyset.kubernetes.io/contains-group-kinds
替换,对它的支持将在 ApplySet beta 或 GA 中删除。applyset.kubernetes.io/id(Alpha)
类型:标签
示例:applyset.kubernetes.io/id: "applyset-0eFHV8ySqp7XoShsGvyWFQD3s96yqwHmzc4e0HR1dsY-v1"
使用于:用作 ApplySet 父对象的那些对象。
此标签的使用是 Alpha。对于 Kubernetes 版本 1.31,您可以在 Secrets、ConfigMaps 或自定义资源上使用此标签,如果定义它们的 CustomResourceDefinition 有 applyset.kubernetes.io/is-parent-type
标签。
用于实现 基于 ApplySet 的 kubectl 中的修剪 的规范的一部分。此标签是使对象成为 ApplySet 父对象的因素。它的值是 ApplySet 的唯一 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。用于实现 基于 ApplySet 的 kubectl 中的修剪 的规范的一部分。您可以在 CustomResourceDefinition (CRD) 上设置此标签,以识别它定义的自定义资源类型(而不是 CRD 本身)作为 ApplySet 的允许父对象。此标签的唯一允许值为 "true"
;如果您要将 CRD 标记为不是 ApplySet 的有效父对象,请省略此标签。
applyset.kubernetes.io/part-of(Alpha)
类型:标签
示例:applyset.kubernetes.io/part-of: "applyset-0eFHV8ySqp7XoShsGvyWFQD3s96yqwHmzc4e0HR1dsY-v1"
使用于:所有对象。
此标签的使用是 Alpha。用于实现 基于 ApplySet 的 kubectl 中的修剪 的规范的一部分。此标签是使对象成为 ApplySet 成员的因素。标签的值 **必须** 与父对象上的 applyset.kubernetes.io/id
标签的值匹配。
applyset.kubernetes.io/tooling(Alpha)
类型:注释
示例:applyset.kubernetes.io/tooling: "kubectl/v1.31"
使用于:用作 ApplySet 父对象的那些对象。
此注释的使用是 Alpha。对于 Kubernetes 版本 1.31,您可以在 Secrets、ConfigMaps 或自定义资源上使用此注释,如果定义它们的 CustomResourceDefinition 有 applyset.kubernetes.io/is-parent-type
标签。
用于实现 基于 ApplySet 的 kubectl 中的修剪 的规范的一部分。此注释应用于用于跟踪 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 中。
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 函数 **可以** 在它生成的的对象上包含此注释。
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 不会考虑这一点。或者,kubelet 拒绝运行您已指定 Pod 操作系统的 Pod,如果它与运行该 kubelet 的节点的操作系统不同。只需查看 Pods OS 以获取更多详细信息。
kubernetes.io/metadata.name
类型:标签
示例:kubernetes.io/metadata.name: "mynamespace"
用于:命名空间
Kubernetes API 服务器(是 控制平面 的一部分)在所有命名空间上设置此标签。标签值设置为命名空间的名称。您无法更改此标签的值。
如果您想使用标签 选择器 针对特定命名空间,这将很有用。
kubernetes.io/limit-ranger
类型:注释
示例:kubernetes.io/limit-ranger: "LimitRanger plugin set: cpu, memory request for container nginx; cpu, memory limit for container nginx"
使用于:Pod
Kubernetes 默认情况下不提供任何资源限制,这意味着除非您明确定义限制,否则您的容器可以消耗无限的 CPU 和内存。您可以为 Pod 定义默认请求或默认限制。您可以通过在相关命名空间中创建 LimitRange 来做到这一点。在您定义 LimitRange 后部署的 Pod 将应用这些限制。注释 kubernetes.io/limit-ranger
记录了为 Pod 指定了资源默认值,并且已成功应用。有关更多详细信息,请阅读有关 LimitRanges 的内容。
kubernetes.io/config.hash
类型:注释
示例:kubernetes.io/config.hash: "df7cc47f8477b6b1226d7d23a904867b"
使用于:Pod
当 kubelet 基于给定清单创建静态 Pod 时,它会将此注释附加到静态 Pod。注释的值是 Pod 的 UID。请注意,kubelet 还将 .spec.nodeName
设置为当前节点名称,就好像 Pod 已计划到该节点一样。
kubernetes.io/config.mirror
类型:注释
示例:kubernetes.io/config.mirror: "df7cc47f8477b6b1226d7d23a904867b"
使用于:Pod
对于 kubelet 在节点上创建的静态 Pod,会在 API 服务器上创建 镜像 Pod。kubelet 添加一个注释来表明此 Pod 实际上是一个镜像 Pod。注释值从 kubernetes.io/config.hash
注释复制而来,该注释是 Pod 的 UID。
当使用此注释设置更新 Pod 时,注释不能更改或删除。如果 Pod 没有此注释,则在 Pod 更新期间不能添加它。
kubernetes.io/config.source
类型:注释
示例:kubernetes.io/config.source: "file"
使用于:Pod
此注释由 kubelet 添加,以指示 Pod 来自哪里。对于静态 Pod,注释值可以是 file
或 http
之一,具体取决于 Pod 清单位于何处。对于在 API 服务器上创建然后计划到当前节点的 Pod,注释值为 api
。
kubernetes.io/config.seen
类型:注释
示例:kubernetes.io/config.seen: "2023-10-27T04:04:56.011314488Z"
使用于:Pod
当 kubelet 第一次看到 Pod 时,它可能会在 Pod 上添加此注释,值为 RFC3339 格式的当前时间戳。
addonmanager.kubernetes.io/mode
类型:标签
示例:addonmanager.kubernetes.io/mode: "Reconcile"
使用于:所有对象
要指定如何管理加载项,您可以使用 addonmanager.kubernetes.io/mode
标签。此标签可以具有以下三个值之一:Reconcile
、EnsureExists
或 Ignore
。
Reconcile
:加载项资源将定期与预期状态进行协调。如果有任何差异,加载项管理器将根据需要重新创建、重新配置或删除资源。如果没有指定标签,这是默认模式。EnsureExists
:将仅检查加载项资源是否存在,但在创建后不会修改它们。当没有具有该名称的资源实例时,加载项管理器将创建或重新创建资源。Ignore
:将忽略加载项资源。此模式适用于与加载项管理器不兼容或由其他控制器管理的加载项。
有关更多详细信息,请参见 Addon-manager。
beta.kubernetes.io/arch(已弃用)
类型:标签
此标签已弃用。请改用 kubernetes.io/arch
。
beta.kubernetes.io/os(已弃用)
类型:标签
此标签已弃用。请改用 kubernetes.io/os
。
kube-aggregator.kubernetes.io/automanaged
类型:标签
示例:kube-aggregator.kubernetes.io/automanaged: "onstart"
用于:APIService
kube-apiserver
在 API 服务器自动创建的任何 APIService 对象上设置此标签。该标签标记了控制平面应如何管理该 APIService。您不应自己添加、修改或删除此标签。
注意
当 kube-apiserver 没有与 APIService 的 API 组/版本相对应的内置或自定义资源 API 时,自动管理的 APIService 对象将被 kube-apiserver 删除。有两个可能的值
onstart
:API 服务器应在 API 服务器启动时协调 APIService,但不要在其他情况下。true
:API 服务器应持续协调此 APIService。
service.alpha.kubernetes.io/tolerate-unready-endpoints(已弃用)
类型:注释
用于:StatefulSet
Service 上的此注释表示 Endpoints 控制器是否应继续为未就绪的 Pod 创建 Endpoints。这些 Service 的 Endpoints 保留其 DNS 记录,并在 kubelet 启动 Pod 中的所有容器并将 Pod 标记为 正在运行 时继续接收来自 Service 的流量,直到 kubelet 停止所有容器并将 Pod 从 API 服务器中删除。
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"
用于:所有对象
此注释是对导致某些内容发生更改的原因的最佳猜测。
当将 --record
添加到可能更改对象的 kubectl
命令时,它会被填充。
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 强制执行以下规则
- 作为卷装载的 Secret 必须列在 ServiceAccount 的
secrets
字段中。 - 容器(包括 sidecar 容器和 init 容器)的
envFrom
中引用的 Secret 也必须列在 ServiceAccount 的 secrets 字段中。如果 Pod 中的任何容器引用了 ServiceAccount 的secrets
字段中未列出的 Secret(即使引用标记为optional
),那么 Pod 将无法启动,并且会生成一个指示不符合规范的 secret 引用的错误。 - Pod 的
imagePullSecrets
中引用的 Secret 必须存在于 ServiceAccount 的imagePullSecrets
字段中,否则 Pod 将无法启动,并且会生成一个指示不符合规范的镜像拉取 secret 引用的错误。
当您创建或更新 Pod 时,会检查这些规则。如果 Pod 不遵循这些规则,它将无法启动,您会看到一条错误消息。如果 Pod 正在运行,您将 kubernetes.io/enforce-mountable-secrets
注释更改为 true,或者您编辑关联的 ServiceAccount 以删除对 Pod 正在使用的 Secret 的引用,那么 Pod 将继续运行。
node.kubernetes.io/exclude-from-external-load-balancers
类型:标签
示例:node.kubernetes.io/exclude-from-external-load-balancers
用于:节点
您可以将标签添加到特定工作节点,以将它们从外部负载均衡器使用的后端服务器列表中排除。以下命令可用于将工作节点从后端集中的后端服务器列表中排除
kubectl label nodes <node-name> node.kubernetes.io/exclude-from-external-load-balancers=true
controller.kubernetes.io/pod-deletion-cost
类型:注释
示例:controller.kubernetes.io/pod-deletion-cost: "10"
使用于:Pod
此注释用于设置Pod 删除成本,它允许用户影响副本集缩容顺序。注释值解析为int32
类型。
cluster-autoscaler.kubernetes.io/enable-ds-eviction
类型:注释
示例:cluster-autoscaler.kubernetes.io/enable-ds-eviction: "true"
使用于:Pod
此注释控制集群自动扩展器是否应该驱逐 DaemonSet Pod。此注释需要在 DaemonSet 清单中的 DaemonSet Pod 上指定。当此注释设置为"true"
时,集群自动扩展器被允许驱逐 DaemonSet Pod,即使其他规则通常会阻止这样做。为了禁止集群自动扩展器驱逐 DaemonSet Pod,您可以为重要的 DaemonSet Pod 将此注释设置为"false"
。如果未设置此注释,则集群自动扩展器将遵循其总体行为(即根据其配置驱逐 DaemonSet)。
注意
此注释仅影响 DaemonSet Pod。kubernetes.io/ingress-bandwidth
类型:注释
示例:kubernetes.io/ingress-bandwidth: 10M
使用于:Pod
您可以对 Pod 应用服务质量流量整形,并有效地限制其可用带宽。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"
用于:持久卷声明
当此注释在持久卷声明 (PVC) 上设置时,表明 PVC 的生命周期已通过初始绑定设置。当存在时,该信息会改变控制平面解释 PVC 对象状态的方式。此注释的值对 Kubernetes 并不重要。
pv.kubernetes.io/bound-by-controller
类型:注释
示例:pv.kubernetes.io/bound-by-controller: "yes"
用于:持久卷、持久卷声明
如果此注释在持久卷或持久卷声明上设置,它表示存储绑定(持久卷 → 持久卷声明,或持久卷声明 → 持久卷)是通过 控制器 安装的。如果注释未设置,并且存在存储绑定,则缺少该注释表示该绑定是手动完成的。此注释的值并不重要。
pv.kubernetes.io/provisioned-by
类型:注释
示例:pv.kubernetes.io/provisioned-by: "kubernetes.io/rbd"
用于:持久卷
此注释添加到已由 Kubernetes 动态配置的持久卷 (PV)。其值为创建该卷的卷插件的名称。它同时服务于用户(以显示 PV 来自哪里)和 Kubernetes(在其决策中识别动态配置的 PV)。
pv.kubernetes.io/migrated-to
类型:注释
示例:pv.kubernetes.io/migrated-to: pd.csi.storage.gke.io
用于:持久卷、持久卷声明
它添加到持久卷 (PV) 和持久卷声明 (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"
用于:命名空间
Pod 节点选择器 使用此注释键将节点选择器分配给命名空间中的 Pod。
topology.kubernetes.io/region
类型:标签
示例:topology.kubernetes.io/region: "us-east-1"
用于:节点、持久卷
请参阅 topology.kubernetes.io/zone。
topology.kubernetes.io/zone
类型:标签
示例:topology.kubernetes.io/zone: "us-east-1c"
用于:节点、持久卷
在节点上:kubelet
或外部cloud-controller-manager
会使用云提供商的信息填充此标签。仅当您使用云提供商时才会设置此标签。但是,如果您认为在您的拓扑中这样做有意义,您可以考虑在节点上设置此标签。
在持久卷上:支持拓扑感知的卷配置程序会自动在持久卷
上设置节点亲和性约束。
区域表示一个逻辑故障域。Kubernetes 集群通常跨越多个区域以提高可用性。虽然区域的确切定义留给基础设施实现,但区域的共同属性包括区域内非常低的网络延迟、区域内无成本网络流量以及与其他区域的故障独立性。例如,区域内的节点可能共享一个网络交换机,但不同区域的节点不应该共享。
区域表示一个更大的域,由一个或多个区域组成。Kubernetes 集群很少跨越多个区域。虽然区域或区域的确切定义留给基础设施实现,但区域的共同属性包括它们之间的网络延迟高于区域内部的网络延迟,它们之间网络流量的成本不为零,以及与其他区域或区域的故障独立性。例如,区域内的节点可能共享电源基础设施(例如 UPS 或发电机),但不同区域的节点通常不会共享。
Kubernetes 对区域和区域的结构做了一些假设
- 区域和区域是分层的:区域是区域的严格子集,并且任何区域都不能在 2 个区域中。
- 区域名称在不同区域是唯一的;例如,区域“africa-east-1”可能由区域“africa-east-1a”和“africa-east-1b”组成。
可以安全地假设拓扑标签不会改变。即使标签是严格可变的,它们的使用者可以假设给定节点不会在区域之间移动,除非被销毁和重新创建。
Kubernetes 可以以多种方式使用此信息。例如,调度程序会自动尝试将副本集中的 Pod 分散到单区域集群中的节点(以减少节点故障的影响,请参阅 kubernetes.io/hostname)。对于多区域集群,这种扩展行为也适用于区域(以减少区域故障的影响)。这是通过选择器扩展优先级实现的。
选择器扩展优先级是一种尽力而为的放置。如果集群中的区域是异构的(例如:节点数量不同、节点类型不同或 Pod 资源需求不同),这种放置可能会阻止 Pod 在区域之间均匀分布。如果需要,您可以使用同构区域(相同数量和类型的节点)来降低不均匀分布的概率。
调度程序(通过卷区域谓词谓词)还会确保声明给定卷的 Pod 仅放置到与该卷相同的区域中。卷不能跨区域附加。
如果PersistentVolumeLabel
不支持自动标记您的持久卷,您应该考虑手动添加标签(或添加对PersistentVolumeLabel
的支持)。使用PersistentVolumeLabel
,调度程序会阻止 Pod 挂载不同区域中的卷。如果您的基础设施没有这个限制,您根本不需要将区域标签添加到卷中。
volume.beta.kubernetes.io/storage-provisioner (已弃用)
类型:注释
示例:volume.beta.kubernetes.io/storage-provisioner: "k8s.io/minikube-hostpath"
用于:持久卷声明
此注释已从 v1.23 开始弃用。请参阅 volume.kubernetes.io/storage-provisioner。
volume.beta.kubernetes.io/storage-class (已弃用)
类型:注释
示例:volume.beta.kubernetes.io/storage-class: "example-class"
用于:持久卷、持久卷声明
此注释可用于持久卷 (PV) 或持久卷声明 (PVC) 来指定 存储类 的名称。当同时指定storageClassName
属性和volume.beta.kubernetes.io/storage-class
注释时,注释volume.beta.kubernetes.io/storage-class
优先于storageClassName
属性。
此注释已弃用。请改用为持久卷声明或持久卷设置 storageClassName
字段。
volume.beta.kubernetes.io/mount-options (已弃用)
类型:注释
示例:volume.beta.kubernetes.io/mount-options: "ro,soft"
用于:持久卷
Kubernetes 管理员可以在将持久卷挂载到节点时指定其他 挂载选项。
volume.kubernetes.io/storage-provisioner
类型:注释
用于:持久卷声明
此注释添加到应该动态配置的 PVC。其值为应该为该 PVC 配置卷的卷插件的名称。
volume.kubernetes.io/selected-node
类型:注释
用于:持久卷声明
此注释添加到由调度程序触发以动态配置的 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 版本。
标签的值采用“主版本.次版本.内部版本号”的格式。
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: ""
用于:端点
当拥有服务为无头服务时,控制平面会将此标签添加到端点对象。要了解更多信息,请阅读 无头服务。
service.kubernetes.io/topology-aware-hints(已弃用)
示例:service.kubernetes.io/topology-aware-hints: "Auto"
用于:服务
此注释用于在服务上启用拓扑感知提示。拓扑感知提示已被重命名:该概念现在称为拓扑感知路由。将注释设置为 Auto
,在服务上,配置了 Kubernetes 控制平面以在与该服务关联的 EndpointSlices 上添加拓扑提示。您也可以显式地将注释设置为 Disabled
。
如果您运行的是低于 1.31 版本的 Kubernetes,请查看该 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 使用此标签将 EndpointSlices 与 服务 关联。
此标签记录了与 EndpointSlice 支持的服务相关的 名称。所有 EndpointSlices 应将此标签设置为其关联服务的名称。
kubernetes.io/service-account.name
类型:注释
示例:kubernetes.io/service-account.name: "sa-name"
用于:密钥
此注释记录了与令牌(存储在类型为 kubernetes.io/service-account-token
的密钥中)相关的 ServiceAccount 的 名称。
kubernetes.io/service-account.uid
类型:注释
示例:kubernetes.io/service-account.uid: da68f9c6-9d26-11e7-b84e-002dc52800da
用于:密钥
此注释记录了与令牌(存储在类型为 kubernetes.io/service-account-token
的密钥中)相关的 ServiceAccount 的 唯一 ID。
kubernetes.io/legacy-token-last-used
类型:标签
示例:kubernetes.io/legacy-token-last-used: 2022-10-24
用于:密钥
控制平面仅将此标签添加到类型为 kubernetes.io/service-account-token
的密钥。此标签的值记录了控制平面上次看到使用服务帐户令牌进行身份验证的客户端请求的日期(ISO 8601 格式,UTC 时区)。
如果旧令牌最后一次使用是在集群获得该功能之前(在 Kubernetes v1.26 中添加),则不会设置该标签。
kubernetes.io/legacy-token-invalid-since
类型:标签
示例:kubernetes.io/legacy-token-invalid-since: 2023-10-27
用于:密钥
控制平面会自动将此标签添加到类型为 kubernetes.io/service-account-token
的自动生成的密钥。此标签将基于密钥的令牌标记为身份验证无效。此标签的值记录了控制平面检测到自动生成的密钥在指定持续时间内(默认为一年)未使用时发生的日期(ISO 8601 格式,UTC 时区)。
endpointslice.kubernetes.io/managed-by
类型:标签
示例:endpointslice.kubernetes.io/managed-by: endpointslice-controller.k8s.io
用于:EndpointSlices
该标签用于指示管理 EndpointSlice 的控制器或实体。此标签旨在使不同的 EndpointSlice 对象能够由同一集群中的不同控制器或实体管理。
endpointslice.kubernetes.io/skip-mirror
类型:标签
示例:endpointslice.kubernetes.io/skip-mirror: "true"
用于:端点
该标签可以设置为 Endpoints 资源上的 "true"
,以指示 EndpointSliceMirroring 控制器不应使用 EndpointSlices 镜像此资源。
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 上设置额外配置。configuration-snippet
注释从 ingress 控制器 1.9.0 版本开始默认被忽略。NGINX ingress 控制器设置 allow-snippet-annotations.
必须显式启用才能使用此注释。启用注释在多租户集群中可能很危险,因为它会导致权限有限的人员能够检索集群中的所有密钥。
kubernetes.io/ingress.class(已弃用)
类型:注释
用于:Ingress
注意
从 v1.18 开始,此注释已弃用,取而代之的是spec.ingressClassName
。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 地址由云控制器管理器使用云提供商验证为有效。
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 控制的作业和 Pod
此注释用于记录作业的原始(预期)创建时间戳,当该作业是 CronJob 的一部分时。控制平面将该值设置为 RFC3339 格式的该时间戳。如果作业属于指定了时区的 CronJob,则时间戳为该时区。否则,时间戳为控制器管理器的本地时间。
kubectl.kubernetes.io/default-container
类型:注释
示例:kubectl.kubernetes.io/default-container: "front-end-app"
注释的值是此 Pod 的默认容器名称。例如,kubectl logs
或 kubectl exec
不带 -c
或 --container
标志将使用此默认容器。
kubectl.kubernetes.io/default-logs-container(已弃用)
类型:注释
示例:kubectl.kubernetes.io/default-logs-container: "front-end-app"
注释的值是此 Pod 的默认日志记录容器名称。例如,kubectl logs
不带 -c
或 --container
标志将使用此默认容器。
注意
此注释已弃用。您应该改为使用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"
用于:部署、副本集、有状态集、守护进程集、Pod
此注释包含资源(部署、副本集、有状态集或守护进程集)的最新重启时间,kubectl 在其中触发了滚动更新以强制创建新的 Pod。命令 kubectl rollout restart <RESOURCE>
通过使用此注释修补所有资源 pod 的模板元数据来触发重启。在上面的示例中,最新重启时间显示为 2024 年 6 月 21 日协调世界时 17:27:41。
您不应该假设此注释代表最近更新的日期/时间;自上次手动触发的滚动更新后,可能已进行了其他更改。
如果您手动将此注释设置为 Pod,则不会发生任何事情。重启副作用来自工作负载管理和 Pod 模板的工作方式。
endpoints.kubernetes.io/over-capacity
类型:注释
示例:endpoints.kubernetes.io/over-capacity:truncated
用于:端点
如果关联的 服务 具有超过 1000 个支持端点,则 控制平面 会将此注释添加到 端点 对象。该注释表明端点对象已超出容量,并且端点数量已被截断为 1000 个。
如果后端端点数低于 1000,则控制平面会删除此注释。
endpoints.kubernetes.io/last-change-trigger-time
类型:注释
示例:endpoints.kubernetes.io/last-change-trigger-time: "2023-07-20T04:45:21Z"
用于:端点
此注释设置为表示时间戳的 端点 对象(时间戳存储在 RFC 3339 日期时间字符串格式中。例如,'2018-10-22T19:32:52.1Z')。这是某些 Pod 或服务对象中的最后一次更改的时间戳,该更改触发了对端点对象的更改。
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}
用于:端点
控制平面 以前在 端点 对象上设置注释。此注释提供了以下详细信息
- 当前领导者是谁。
- 当前领导者获得的时间。
- 租赁(领导者)的持续时间(以秒为单位)。
- 当前租赁(当前领导者)应续期的期限。
- 过去发生的领导者变更次数。
Kubernetes 现在使用 租约 来管理 Kubernetes 控制平面的领导者分配。
batch.kubernetes.io/job-tracking(已弃用)
类型:注释
示例:batch.kubernetes.io/job-tracking: ""
使用于:作业
作业上存在此注释曾经表示控制平面正在 使用终结器跟踪作业状态。添加或删除此注释不再有任何效果(Kubernetes v1.27 及更高版本)所有作业都使用终结器进行跟踪。
job-name(已弃用)
类型:标签
示例:job-name: "pi"
使用于:作业和由作业控制的 Pod
注意
从 Kubernetes 1.27 开始,此标签已弃用。Kubernetes 1.27 及更高版本会忽略此标签,并使用带前缀的job-name
标签。controller-uid(已弃用)
类型:标签
示例:controller-uid: "$UID"
使用于:作业和由作业控制的 Pod
注意
从 Kubernetes 1.27 开始,此标签已弃用。Kubernetes 1.27 及更高版本会忽略此标签,并使用带前缀的controller-uid
标签。batch.kubernetes.io/job-name
类型:标签
示例:batch.kubernetes.io/job-name: "pi"
使用于:作业和由作业控制的 Pod
此标签用作一种用户友好的方式来获取与作业相对应的 Pod。job-name
来自作业的 name
,并提供了一种简单的方法来获取与作业相对应的 Pod。
batch.kubernetes.io/controller-uid
类型:标签
示例:batch.kubernetes.io/controller-uid: "$UID"
使用于:作业和由作业控制的 Pod
此标签用作一种编程方式来获取与作业相对应的所有 Pod。controller-uid
是一个唯一标识符,它在 selector
字段中设置,以便作业控制器可以获取所有相应的 Pod。
scheduler.alpha.kubernetes.io/defaultTolerations
类型:注释
示例:scheduler.alpha.kubernetes.io/defaultTolerations: '[{"operator": "Equal", "value": "value1", "effect": "NoSchedule", "key": "dedicated-node"}]'
用于:命名空间
此注释要求启用 PodTolerationRestriction 准入控制器。此注释键允许为命名空间分配容忍度,并且在此命名空间中创建的任何新 Pod 都将添加这些容忍度。
scheduler.alpha.kubernetes.io/tolerationsWhitelist
类型:注释
示例:scheduler.alpha.kubernetes.io/tolerationsWhitelist: '[{"operator": "Exists", "effect": "NoSchedule", "key": "dedicated-node"}]'
用于:命名空间
仅当(Alpha)PodTolerationRestriction 准入控制器启用时,此注释才有用。注释值是一个 JSON 文档,它定义了其注释的命名空间允许的容忍度列表。当你创建 Pod 或修改其容忍度时,API 服务器会检查容忍度以查看它们是否在允许列表中。只有当检查成功时,才允许 Pod 进入。
scheduler.alpha.kubernetes.io/preferAvoidPods(已弃用)
类型:注释
用于:节点
此注释要求启用 NodePreferAvoidPods 调度插件。该插件已自 Kubernetes 1.22 开始弃用。请改用 污点和容忍度。
node.kubernetes.io/not-ready
类型:污点
示例:node.kubernetes.io/not-ready: "NoExecute"
用于:节点
节点控制器通过监控节点的健康状况来检测节点是否已准备好,并相应地添加或删除此污点。
node.kubernetes.io/unreachable
类型:污点
示例:node.kubernetes.io/unreachable: "NoExecute"
用于:节点
节点控制器会将污点添加到与 节点条件 Ready
为 Unknown
相对应的节点。
node.kubernetes.io/unschedulable
类型:污点
示例:node.kubernetes.io/unschedulable: "NoSchedule"
用于:节点
在初始化节点时,会将污点添加到节点,以避免竞争条件。
node.kubernetes.io/memory-pressure
类型:污点
示例:node.kubernetes.io/memory-pressure: "NoSchedule"
用于:节点
kubelet 根据节点上观察到的 memory.available
和 allocatableMemory.available
检测内存压力。然后将观察到的值与可在 kubelet 上设置的相应阈值进行比较,以确定是否应添加/删除节点条件和污点。
node.kubernetes.io/disk-pressure
类型:污点
示例:node.kubernetes.io/disk-pressure :"NoSchedule"
用于:节点
kubelet 根据节点上观察到的 imagefs.available
、imagefs.inodesFree
、nodefs.available
和 nodefs.inodesFree
(仅限 Linux)检测磁盘压力。然后将观察到的值与可在 kubelet 上设置的相应阈值进行比较,以确定是否应添加/删除节点条件和污点。
node.kubernetes.io/network-unavailable
类型:污点
示例:node.kubernetes.io/network-unavailable: "NoSchedule"
用于:节点
这最初由 kubelet 在使用云提供商时设置,该提供商指示需要额外的网络配置。只有当云上的路由配置正确时,云提供商才会删除污点。
node.kubernetes.io/pid-pressure
类型:污点
示例:node.kubernetes.io/pid-pressure: "NoSchedule"
用于:节点
kubelet 检查节点上 /proc/sys/kernel/pid_max
大小的 D 值和 Kubernetes 使用的 PID,以获取可用 PID 的数量,称为 pid.available
指标。然后将该指标与可在 kubelet 上设置的相应阈值进行比较,以确定是否应添加/删除节点条件和污点。
node.kubernetes.io/out-of-service
类型:污点
示例:node.kubernetes.io/out-of-service:NoExecute
用于:节点
用户可以手动将污点添加到节点,将其标记为停用。如果在 kube-controller-manager
上启用了 NodeOutOfServiceVolumeDetach
功能网关,并且节点使用此污点标记为停用,则如果节点上没有匹配的容忍度,节点上的 Pod 将被强制删除,并且节点上终止的 Pod 的卷分离操作将立即发生。这允许节点上的 Pod 快速在其他节点上恢复。
注意
有关何时以及如何使用此污点的更多详细信息,请参阅 非正常节点关闭。node.cloudprovider.kubernetes.io/uninitialized
类型:污点
示例:node.cloudprovider.kubernetes.io/uninitialized: "NoSchedule"
用于:节点
在节点上设置此污点以将其标记为不可用,当 kubelet 使用“外部”云提供商启动时,直到来自 cloud-controller-manager 的控制器初始化此节点,然后删除污点。
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) 主节点 的节点,此注释会记录 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
使用于:节点
它指定了节点功能对象的目标节点。节点功能对象的创建者必须设置此标签,并且对象的使用者应该使用该标签来过滤指定给特定节点的功能。
注意
这些节点功能发现 (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"
用于:服务
如果您为类型为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 的逗号分隔列表。
此注释仅与类型为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.beta.kubernetes.io/aws-load-balancer-type: "external"
注释该服务,并且您在集群中使用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"
用于:服务
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
属性。
当此注释添加到服务时,负载均衡器控制器会将注释引用的安全组附加到负载均衡器。如果您省略此注释,则 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 负载均衡器控制器使用此注释。您应该为服务设置.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 弹性负载均衡的官方集成根据此注释为类型为LoadBalancer
的服务配置 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 弹性负载均衡的官方集成根据此注释为类型为LoadBalancer
的服务配置 TLS。注释的值是用于与客户端对等方协商 TLS 的 AWS 策略的名称。
service.beta.kubernetes.io/aws-load-balancer-ssl-ports (beta)
示例:service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "*"
与 AWS 弹性负载均衡的官方集成根据此注释为类型为LoadBalancer
的服务配置 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 云提供商集成是否应该管理类型为LoadBalancer
的服务。
有两个允许的值
nlb
- 云控制器管理器配置一个网络负载均衡器
external
- 云控制器管理器不配置任何负载均衡器
如果您在 AWS 上部署了一个类型为LoadBalancer
的服务,并且您没有设置任何service.beta.kubernetes.io/aws-load-balancer-type
注释,则 AWS 集成将部署一个经典的弹性负载均衡器。除非您另行指定,否则这种行为(没有注释存在)是默认行为。
当您在类型为LoadBalancer
的服务上将此注释设置为external
时,并且您的集群具有 AWS 负载均衡器控制器的正常部署时,AWS 负载均衡器控制器将尝试根据服务规范部署负载均衡器。
注意
不要修改或添加现有服务对象上的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 标准负载均衡器支持的服务。此注释在服务上使用,以指定负载均衡器是否应该在闲置超时时禁用或启用 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.31"
用于:命名空间
值**必须**是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.31"
用于:命名空间
值**必须**是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 模板的对象(例如 Deployment、Job、StatefulSet 等)时也会显示警告。
有关更多信息,请参阅在命名空间级别强制执行 Pod 安全性。
pod-security.kubernetes.io/warn-version
类型:标签
示例:pod-security.kubernetes.io/warn-version: "1.31"
用于:命名空间
值**必须**是latest
或格式为v<major>.<minor>
的有效 Kubernetes 版本。这决定了在验证提交的 Pod 时要应用的Pod 安全标准策略的版本。请注意,在创建或更新包含 Pod 模板的对象(例如 Deployment、Job、StatefulSet 等)时也会显示警告。
有关更多信息,请参阅在命名空间级别强制执行 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.31 不支持 PodSecurityPolicy API。
当 PodSecurityPolicy 准入控制器接受 Pod 时,准入控制器会修改 Pod 以使其具有此注释。注释的值是被用于验证的 PodSecurityPolicy 的名称。
seccomp.security.alpha.kubernetes.io/pod(非功能性)
类型:注释
使用于:Pod
v1.25 之前的 Kubernetes 允许您使用此注释配置 seccomp 行为。有关 Pod 的受支持方法,请参阅使用 seccomp 限制容器的系统调用。
container.seccomp.security.alpha.kubernetes.io/[NAME](非功能性)
类型:注释
使用于:Pod
v1.25 之前的 Kubernetes 允许您使用此注释配置 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 套接字信息,以便以后使用。kubeadm 使用此信息对节点对象进行注释。该注释仍然是“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 服务器实例的公开广告地址/端口端点。
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
类型:污点
示例: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 不再设置或使用此已弃用的污点。