標籤由一組索引值對組成,可以用於標記ECI執行個體。您可以使用標籤來分組管理ECI執行個體,便於篩選和大量操作。本文介紹如何為ECI Pod綁定自訂標籤(Tag),以便後續可以基於標籤管理ECI Pod,例如基於標籤進行費用分析。
背景資訊
標籤(Tag)是一組索引值對,功能與Label類似,是阿里雲提供的用於標識雲資源,實現分類管理資源的功能。通過阿里雲Container ServiceKubernetes版建立的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綁定的標籤資訊,可在Elastic Container Instance控制台的容器組頁面查看。