标签由一组键值对组成,可以用于标记ECI实例。您可以使用标签来分组管理ECI实例,便于筛选和批量操作。本文介绍如何为ECI Pod绑定自定义标签(Tag),以便后续可以基于标签管理ECI Pod,例如基于标签进行费用分析。
背景信息
标签(Tag)是一组键值对,功能与Label类似,是阿里云提供的用于标识云资源,实现分类管理资源的功能。通过阿里云容器服务Kubernetes版创建的ECI实例默认带有以下标签:
-
ManagedBy:集群类型。
-
ClusterId:集群ID。
-
NameSpace:集群的命名空间。
-
OwnerReferenceKind:集群下创建的负载类型,例如Deployment、Job等。
-
OwnerReferenceName:集群下创建的负载名称,例如Deployment name、Job name等。
-
PodName:Pod名称。
配置说明
您可以通过k8s.aliyun.com/eci-custom-tags的Annotation为ECI Pod绑定自定义标签,最多可以绑定3个标签。标签键和标签值之间用半角冒号隔开,多个标签之间用半角逗号隔开。
Annotation请添加在Pod的metadata下,例如:创建Deployment时,Annotation需添加在spec>template>metadata下。
仅支持在创建ECI Pod时添加ECI相关Annotation来生效ECI功能,更新ECI Pod时添加或者修改ECI相关Annotation均不会生效。
配置示例如下:
apiVersion: apps/v1
kind: Deployment
metadata:
name: test
labels:
app: test
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
name: nginx-test
labels:
app: nginx
alibabacloud.com/eci: "true"
annotations:
k8s.aliyun.com/eci-custom-tags: "env:test,name:alice" #绑定标签
spec:
containers:
- name: nginx
image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
ports:
- containerPort: 80
配置完成后,您可以通过kubectl describe命令查询Pod详情,从Annotation中可以查看k8s.aliyun.com/eci-custom-tags的值,即自定义标签。
~$ kubectl get pod
NAME READY STATUS RESTARTS AGE
test-555f6995c6-jrmtl 1/1 Running 0 31m
test-555f6995c6-tqjjk 1/1 Running 0 31m
~$ kubectl describe pod test-555f6995c6-jrmtl
Name: test-555f6995c6-jrmtl
Namespace: default
Priority: 0
Node: virtual-kubelet-cn-beijing-k/172.16.xxx.xxx
Start Time: Tue, 22 Nov 2022 02:49:42 +0000
Labels: alibabacloud.com/eci=true
app=nginx
pod-template-hash=555f6995c6
Annotations: ProviderCreate: done
k8s.aliyun.com/cluster-dns:
k8s.aliyun.com/cluster-domain: cluster.local
k8s.aliyun.com/eci-client-token: bbb1a0f7-ad20-440c-a95c-00d9c064f4bc
k8s.aliyun.com/eci-created-by-template: true
k8s.aliyun.com/eci-custom-tags: env:test,name:alice
k8s.aliyun.com/eci-drop-apiserver-interactive-caps:
k8s.aliyun.com/eci-instance-cpu: 2.0
如果想要更加直观地查看ECI Pod绑定的标签信息,可在弹性容器实例控制台的容器组页面查看。
相关文档
为ECI Pod绑定的自定义标签可用于账单分账管理,便于您进行费用分析。更多信息,请参见通过控制台查看费用分析。