Updated on 2024-12-18 GMT+08:00

Configuring Labels and Annotations

Pod Annotations

CCE Autopilot clusters provide multiple advanced functions during pod creation. To enable these functions, you can add annotations to pods on the console or using YAML. Table 1 describes the available annotations.

Table 1 Pod annotations

Function and Reference

Annotation

Example Value

Description

Configuring QoS for a Pod

kubernetes.io/ingress-bandwidth

100M

Indicates the ingress bandwidth of a pod.

This annotation controls the rate at which a pod receives data to ensure that the pod can process external requests.

kubernetes.io/egress-bandwidth

100M

Indicates the egress bandwidth of a pod.

This annotation controls the rate at which a pod sends data to external systems. This affects the efficiency of communication between the pod and external services or users.

Setting AZ Affinity

node.cce.io/node-az-list

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

Lists the AZs for pod affinity.

For a CCE Autopilot cluster, you can use workload annotations to implement AZ affinity and schedule pods to specified AZs.

Increasing the Ephemeral Storage Space of a Pod

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

14

Indicates the extra ephemeral storage capacity for a pod, in GiB. The value ranges from 0 to 994.

Each pod can have 30-GiB free ephemeral storage and specified extra storage.

NOTE:

Only clusters v1.28.6-r0, v1.27.8-r0, and later support this function. Clusters of other versions need to be upgraded to support this function.

You can add an annotation on the console or using YAML.

Adding an Annotation on the Console

When creating a workload on the console, you can choose Advanced Settings > Labels and Annotations and add pod annotations to enable advanced functions.

For example, to add 14 GiB of ephemeral storage capacity for a pod, set Pod Annotation to resource.cce.io/extra-ephemeral-storage-in-GiB=14 and click Confirm.

Figure 1 Adding ephemeral storage capacity for a pod

Adding an Annotation Using YAML

When creating a workload using YAML, you can use the annotations parameter to enable advanced pod functions.

For example, when creating an Nginx workload, you can use annotations to add 14 GiB of ephemeral storage capacity for a pod.

apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx # Workload name
spec:
  replicas: 1 # Number of pods
  selector:
    matchLabels: # Selector for selecting resources with specific labels.
      app: nginx  
  template:
    metadata:
      labels:     # Labels
        app: nginx
      annotations:
        resource.cce.io/extra-ephemeral-storage-in-GiB: '14'
    spec:
      containers:
      - image: nginx:latest   # {Image name}:{Image tag}
        name: nginx
      imagePullSecrets:
      - name: default-secret

Pod Labels

You can use pod labels to organize, select, and manage resources for pods to make it easy to use and maintain resources.

When you create a workload on the console, the following labels are added to the pod by default. The value of app is the workload name.

Example YAML:

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