

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在 EKS 中使用 Kubernetes 标签进行成本分配
<a name="split-cost-allocation-data-kubernetes-labels"></a>

拆分成本分配数据支持使用 Kubernetes 标签作为 Amazon EKS 集群的成本分配标签。虽然这些标签会自动作为用户定义的成本分配标签导入，但需要在管理账户级别激活。激活后，您可以通过这些标签，使用成本中心、应用程序、业务部门和环境等自定义属性在成本和使用情况报告（CUR）中归因容器组（pod）级别的成本。

此功能帮助组织在跨团队、项目或部门的共享 EKS 环境中准确跟踪和分配成本。使用 Kubernetes 标签，您可以根据自己的特定业务需求和组织设计来分配 Kubernetes 成本。

## 先决条件
<a name="prerequisites-kubernetes-labels"></a>

将 Kubernetes 标签与拆分成本分配数据结合使用的先决条件：
+ 您需要在 B AWS illing and Cost Management 控制台中启用拆分成本分配数据。必须在管理账户级别启用。有关详细信息，请参阅[启用拆分成本分配数据](https://docs.aws.amazon.com/cur/latest/userguide/enabling-split-cost-allocation-data.html)。
+ 您需要一个 EKS 集群，以便跟踪其拆分成本分配数据。这个集群可以是现有集群，也可以创建一个新集群。有关更多信息，请参阅《Amazon EKS 用户指南》**中的[创建 Amazon EKS 集群](https://docs.aws.amazon.com/eks/latest/userguide/create-cluster.html)。
+ 您必须为 EKS 集群中的容器组（pod）分配标签。有关如何在 Kubernetes 中创建标签的更多信息，请参阅 *Kubernetes 文档*中的[标签和选择器](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/)。

## 在 EKS 中处理 Kubernetes 标签
<a name="work-with-kubernetes-labels"></a>

拆分成本分配数据支持每个容器组（pod）最多 50 个 Kubernetes 标签，这些标签在作为成本分配标签导入之前按字母顺序排序。自动丢弃前 50 个以外的所有标签。如果在达到 50 个标签的限制后需要添加新的成本分配标签，则必须先移除现有标签，并确保在按字母顺序排序时新标签在前 50 个标签之内。

**注意**  
某些 AWS 托管服务会自动向 EKS 容器添加标签。这些标签计入每个容器组（pod）的 50 个标签上限，并将显示在成本分配标签页面上。  
虽然 Kubernetes 标签没有大小限制，但成本分配标签有特定的字符限制：标签键为 128 个字符，标签值为 256 个字符。系统会丢弃超过这些字符限制的标签，并且这些标签不会显示为成本分配标签。出于成本分配目的，建议在创建标签时遵循这些字符限制。

导入的 Kubernetes 标签显示为成本分配标签，且必须在付款人账户级别激活。有关成本分配标签和激活的更多信息，请参阅[使用用户定义的成本分配标签](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/custom-tags.html)。以下成本分配标签限制适用：每个资源可以有 50 个用户定义的标签，每个付款人账户可以有 500 个用户定义的标签。系统生成的标签不计入这些限制。

**注意**  
在您创建用户定义的标签并将其应用到资源之后，标签键最多可能需要 24 小时才会显示在成本分配标签页面上。激活标签后，这些标签可能还需要 24 小时才会变为活跃。

## 管理 Kubernetes 标签和成本分配标签
<a name="manage-kubernetes-labels"></a>

您可以在 EKS 中添加、删除和编辑 Kubernetes 标签，也可以停用关联的成本分配标签。下面描述了每个操作的预期行为。

**添加新标签**

您可以为容器组（pod）添加新的 Kubernetes 标签。如果尚未达到 50 个标签的限制，新标签将被导入并作为成本分配标签提供，随后可被激活使用。但是，如果已达到 50 个标签的限制，则即使新标签按字母顺序排序时在前 50 个标签内，也不会被导入。您必须先停用现有成本分配标签才能导入新标签。

**编辑标签**

Kubernetes 不允许编辑标签键。要更改标签键，必须将其移除并添加新标签。但是，您可以编辑标签值，这些值将在下一个 CUR 中体现。

**删除标签**

您可以从 EKS 容器组（pod）中移除标签。请注意，移除标签不会自动停用其关联的成本分配标签。拆分成本分配数据将继续填入 CUR 中，直到您明确停用成本分配标签为止。

**停用成本分配标签**

您可以停用任何根据 Kubernetes 标签创建的成本分配标签。停用后，数据将不再填充到相应的列，并且该列将从下个月的 CUR 中删除。

## 管理 Kubernetes 标签以进行成本分配的最佳实践
<a name="best-practices-kubernetes-labels"></a>

Kubernetes 标签为共享成本分配建模带来了极大的灵活性。为了充分发挥此功能的潜力，建议遵循以下最佳实践来优化您的成本管理方法。

**了解标签限制**

50 的label-per-pod 限制基于字母排序。只有按字母顺序排列的前 50 个标签才会导入用于成本分配。为确保关键标签包含在内，请仔细规划标签命名，确保按字母顺序排序时重要标签出现在前 50 个标签内。

**遵循字符限制**

AWS 成本分配标签具有以下字符限制：
+ 标签键：128 个字符
+ 标签值：256 个字符

虽然 Kubernetes 允许使用更长的标签，但任何超过这些限制的标签都不会导入。设计标签时遵循这些限制，以确保实现成功的成本分配跟踪。

**已达容量上限时添加新标签**

当一个容器组（pod）达到 50 个标签的限制，并且您需要添加新的成本分配标签时，请按照以下步骤操作：

1. 审查现有标签并确定要停用的成本分配标签。

1. 停用所选标签。

1. 添加新的成本分配标签。

1. 验证新标签按字母顺序排序时是否在前 50 个标签内。

**注意**  
请记住，只有按字母顺序排序的前 50 个标签才用于成本分配。