标签(Tag)是一种用于对资源进行分类和描述的元数据,通过键值对的形式为资源添加标签。您可以使用阿里云标签来分组管理ACS Pod实例,便于筛选和批量操作。本文介绍如何通过Kubernetes Pod Annotation为ACS Pod绑定阿里云自定义标签,以便后续基于标签进行费用分析。
背景信息
阿里云标签是一种灵活且可定制的资源标记方式,适用于标识和分类云资源。通过为云资源打上标签,您可以更方便地管理和组织云资源,实现分类管理云资源的功能。具体信息,请参见标签概述。
通过阿里云容器计算服务ACS创建的Pod实例默认带有以下系统标签:
系统标签key | 系统标签说明 |
acs:acc:cluster_id | 集群ID |
acs:acc:cluster_name | 集群名称 |
acs:acc:compute_class | 实例类型 |
acs:acc:zone | 可用区 |
目前ACS仅支持配置标签用于费用分析等相关功能。
配置说明
您可以通过alibabacloud.com/custom-tags
的Annotation为ACS Pod绑定自定义标签,最多可以绑定5个标签。标签键和标签值之间用英文半角冒号隔开,多个标签之间用英文半角逗号隔开。
Annotation请添加在Pod的metadata下,例如:创建Deployment时,Annotation需添加在
spec.template.metadata
下。仅支持在创建ACS Pod时添加Pod相关Annotation来生效自定义标签功能,更新ACS Pod时,添加或者修改Pod相关Annotation均不会生效。
键与值内容限定匹配正则表达式 "^[a-zA-Z0-9_.!@#%&*+=:;/<>~-]{1,128}$",并符合标签通用规范。关于标签的详细内容,请参见标签概述。
因
:
用作分隔符,无法作为键值内容。不符合键值对规范的内容会直接忽略。
配置示例
以下示例通过使用YAML创建Deployment的方式,演示如何为Deployment中的Pod配置自定义标签。
使用以下内容创建nginx.yaml。
apiVersion: apps/v1 kind: Deployment metadata: name: nginx labels: app: nginx spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: name: nginx-test labels: app: nginx alibabacloud.com/compute-class: general-purpose alibabacloud.com/compute-qos: default annotations: alibabacloud.com/custom-tags: "<tag_key1>:<tag_value1>,<tag_key2>:<tag_value2>" #绑定自定义标签 spec: containers: - name: nginx image: registry.cn-hangzhou.aliyuncs.com/acs-sample/nginx:latest ports: - containerPort: 80
上述YAML在
annotations
中添加了两个标签,分别为<tag_key1>:<tag_value1>
和<tag_key2>:<tag_value2>
。参考配置说明,您可以添加自定义标签的key和value。执行以下命令,查看Pod详情。命令中
<Pod name>
需要替换为实际Pod名称,如nginx-789f4xxxxx-vnjxz
。kubectl describe pod <Pod name> | grep -A 10 Annotations
预期输出:
Annotations: ProviderCreate: done alibabacloud.com/client-token: edf29202-54ac-438e-9626-a1ca007xxxxx alibabacloud.com/custom-tags: <tag_key1>:<tag_value1>,<tag_key2>:<tag_value2> alibabacloud.com/instance-id: acs-2ze008giupcyaqbxxxxx alibabacloud.com/pod-ephemeral-storage: 30Gi alibabacloud.com/pod-use-spec: 0.25-0.5Gi alibabacloud.com/request-id: A0EF3BF3-37E7-5A07-AC2D-68A0CFCxxxxx alibabacloud.com/schedule-result: finished alibabacloud.com/user-id: 14889995898xxxxx kubernetes.io/pod-stream-port: 10250 kubernetes.io/preferred-scheduling-node: virtual-kubelet-cn-beijing-g/1
可以看到,在
Annotations
中新增的alibabacloud.com/custom-tags
已生效。在费用与成本页面,查看标签是否生效。
(可选)启用费用标签
按照业务实际情况设置需要进行成本分析的维度,将标签设置为费用标签。
访问费用与成本的费用标签页面。
在费用标签页面,阅读费用标签说明,单击下一步。
选择使用标签实现成本分摊管理中绑定的标签,将其指定为费用标签,单击下一步。
单击确认启用。
查看费用标签对应的云资源
访问费用与成本的成本分析页面。
在右侧筛选条件区域,单击标签。
选择您设置的标签
<tag_key1>:<tag_value1>,<tag_key2>:<tag_value2>
,查询费用支出情况。单击应用筛选条件。
说明成本分析支持选择多个标签,多个标签之间是或的关系。
云产品控制台新增的标签,T+1同步至费用标签列表。
费用标签包含用户历史创建的全部标签,用户确认在无使用场景的情况下,可选择不启用。
相关文档
如果您有云资源分账的需求,可以使用标签进行费用分析。具体内容,请参见标签分账概述。