更新时间:2026-01-13 GMT+08:00
分享

设置标签与注解

为了满足多维度的元数据管理需求,Kubernetes提供了标签(Labels)注解(Annotations)两种元数据机制。它们都以键值对(key-value)的形式为资源附加元数据,但设计目的和使用场景有本质区别:

  • 标签(Labels):主要用于标识和分类Kubernetes对象,采用结构化键值对(如app=frontend)的形式,支持通过选择器高效筛选资源,并直接参与资源的调度与管理。标签的键值需遵循命名规范,且通常用于表示资源对象的持久性特征(如版本信息等)。
  • 注解(Annotations):主要用于扩展功能和存储附加元数据,支持更自由的数据格式(如JSON、多行文本等),但不参与资源的筛选或调度逻辑。

标签和注解适用于多种Kubernetes资源类型,本章节主要聚焦于它们在Pod上的应用。

Pod标签

Pod标签的核心作用是实现资源间的智能关联。为Pod设置标签后,Kubernetes中的其他资源可以通过标签选择器(Label Selector)精准识别和关联这些Pod。标签的键和值需遵循一定规范,具体请参见Syntax and character set

您可以通过控制台或YAML为Pod增加标签,具体如下:

在控制台创建或升级工作负载时,您可以在“高级配置 > 标签与注解”中添加“Pod标签”,从而对Pod进行标识。创建工作负载时,系统会默认为Pod添加如下标签,其中app的值为工作负载名称。

图1 Pod标签

在创建或升级工作负载时,您可以在YAML文件的下列位置为Pod添加标签:

...
spec:
  selector:
    matchLabels:
      app: nginx
      version: v1
  template:
    metadata:
      labels:
        app: nginx
        version: v1
    spec:
      ...

Pod注解

CCE为Pod提供了一些高级功能,可以通过控制台或YAML添加注解的方式实现,具体操作如下:

在控制台创建或升级工作负载时,您可以通过“高级配置 > 标签与注解”,添加“Pod注解”,从而启用Pod的高级功能。

例如,为Pod增加14GiB的临时存储空间,可以将“Pod注解”设置为“resource.cce.io/extra-ephemeral-storage-in-GiB=14”,并单击“确认添加”

图2 为Pod增加临时存储空间

通过YAML创建或升级工作负载时,您可以通过“annotations”参数启用Pod的高级功能。

例如,您可以通过“annotations”为Pod增加14GiB的临时存储空间。

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx     # 工作负载名称
spec:
  replicas: 1     # 实例数量
  selector:
    matchLabels:  # 选择器,用于选择带有特定标签的资源
      app: nginx  
  template:
    metadata:
      labels:     # 标签
        app: nginx
      annotations:
        resource.cce.io/extra-ephemeral-storage-in-GiB: '14'
    spec:
      containers:
      - image: nginx:latest   # 镜像名称:镜像版本
        name: nginx
      imagePullSecrets:
      - name: default-secret

常用的Pod注解

表1中给出了一些常用注解,您可以根据需求为Pod添加相关注解。

表1 Pod Annotation

功能及相关文档

参数

示例值

说明

设置可用区亲和性

node.cce.io/node-az-list

cn-east-3a,cn-east-3b

表示Pod亲和的可用区列表。

可以通过设置工作负载注解实现可用区亲和,将Pod调度到指定的可用区。

增加Pod的临时存储容量

resource.cce.io/extra-ephemeral-storage-in-GiB

14

表示额外增加的Pod临时存储容量,单位GiB,取值范围:0-994。

每个Pod的实际临时存储容量=30GiB(默认免费提供的临时存储容量)+额外增加的临时存储容量。

说明:

1.28.6-r0和1.27.8-r0及以上版本的集群支持该功能。

使用镜像缓存

(两个参数二选一即可)

imagecache.cce.io/specified-name

autopilot-test

用于指定镜像缓存,请填写待使用镜像缓存的名称,且该镜像缓存必须为可用状态。指定镜像缓存后,containers参数中的镜像信息需与镜像缓存中的镜像信息一致。

如果填写的镜像缓存不存在,或者未在镜像缓存中找到需要的镜像,则不再使用镜像缓存,集群会按照containers中的镜像信息重新下载镜像。

imagecache.cce.io/auto-match

true

表示是否开启自动匹配镜像缓存,取值范围如下:

  • true:表示开启镜像缓存。
  • false:表示不开启镜像缓存,默认为不开启。

开启后,集群将从所有可用的镜像缓存中自动匹配最优镜像,并且匹配顺序如下:

  • 镜像匹配度:选择镜像信息匹配度最高的镜像缓存。
  • 创建时间:选择创建时间最新的镜像缓存。

如果在镜像缓存中未匹配到镜像,则不再使用镜像缓存。不使用镜像缓存后,集群将在SWR镜像仓库、镜像中心依次匹配输入的镜像名称,若最终未匹配,则返回镜像拉取失败。

设置实例类型

resource.cce.io/instance-type

general-computing-lite

用于指定Pod实例使用的实例类型,取值范围如下:

  • general-computing:通用型
  • general-computing-lite: 通用型(轻享)
说明:

1.28.8-r0与1.31.4-r0及以上版本的集群支持该功能。

相关文档