使用标记管理成本数据

Cost Management Service 1-latest

使用标签组织资源并分配成本

Red Hat Customer Content Services

摘要

了解标记如何在成本管理方面工作,并概述了使用标签和标签管理您的成本数据的策略。成本管理是 Red Hat Insights 服务产品组合的一部分。高级分析工具的 Red Hat Insights 套件可帮助您识别和优先影响您的操作、安全性和业务。

第 1 章 使用标记管理成本数据

本指南深入地解释了标记如何在成本管理方面工作,以及如何使用标记的最佳组织和查看资源来管理您的成本。

第 2 章 规划标记策略

2.1. 为什么使用标签?

标签(也称为标签)是分配给您的机构可以通过多种方式使用的自定义元数据的字符串。

在成本管理环境中,标签可帮助您在环境的不同部分之间区分和分配成本,以便更精确地查看成本数据,填补业务逻辑和资源之间的差距。这可让您分配机构特定详情来帮助摘要信息。

许多项目和技术服务(如环境、地区、成本中心)支持业务服务,标签可以映射业务概念以报告提供清晰性。这样,正确分配的标签可帮助您显示按这些业务概念分组的成本。标签应该用于对云中的层次结构进行补充,或者集群中已存在的特定层次结构(如项目)。

与成本管理相比,应用程序有时会使用标签。例如,可以使用它们定义某些操作,如业务自动化、操作配置文件或访问和安全控制。然后,您可以根据这些标签应用策略。但是,本文档不考虑这些用例。云供应商对与资源关联的标签或标签数量有限制,因此您应该考虑所有这些使用,然后再为成本管理定义标记策略。

另外,当无法直接将资源组织到项目或子项目中时,标签有时会被用来将资源分成较小的单元。例如,运行许多服务的共享集群,以提供不同的业务功能,可以使用标签来区分应用程序,而不是将它们拆分到项目中。另外,AWS 帐户可以为项目运行多个不同的服务,有时这些服务在多个应用程序(如负载均衡器或其他共享资源)之间共享。

另外,标签还可帮助您识别集成之间的关系,允许您在同一环境、成本中心或团队标记的多个集群中对应用程序进行分组。因此,在开发、质量或生产环境集群中运行时,可以识别应用程序的成本。当资源之间没有直接链接时,标签也可以帮助识别依赖项,如 RDS 数据库和 OpenShift 项目之间的链接。

2.2. 标记策略的注意事项

在规划标记策略时,这些注意事项可帮助您决定如何组织并报告您的集成成本。

方法
最好在最初为您的资源分配标签时实施 Crawl、Walk、Run 策略。从您认为达到您的组织目标所需的最小标签数开始。然后会随着时间推移基于这个基础的慢速构建。随着您了解您的组织如何利用成本管理增长,因此,您在实施标记策略方面会用到您的技能。
将业务映射到报告

定义您要报告的业务视角。例如,用于成本管理的税务可能考虑这些不同的视角:

所有权和使用:

定义资源的所有者和用户:例如,请求资源的用户的唯一标识符,以及实际消耗资源的用户的唯一标识符。

租期:

如果您的环境是共享的,则了解哪些组或业务单元已请求该资源是有益的。当用户是不同组的一部分时,需要选择一个组。对于成本报告,您可以使用成本中心在很多情况下达到此目的;但部门、项目或合作伙伴也是不错的候选者。

位置 :

对于在全局范围内部署软件的组织,云供应商已识别您的资源运行所在的区域,但您的私有云可能不同。

环境或阶段:

您可能想要区分开发和生产,以便根据您要创建或运行资源的环境来决定不同的成本决策。如果您的开发管道已经包含阶段,如开发、测试、暂存、预生产和生产,则这是不错的候选阶段。

应用程序/项目/服务/事件:

或许,您的环境是提供某一事件的服务,如一组用于事件的临时资源(例如,您每年客户为导向的会议)。您甚至可以包含应用程序版本。

标准化您的标签

一致性是标记策略最重要的方面,可提供准确和可比的成本报告结果。

创建一个明确标记策略,用于定义需要标记哪些资源、哪些标签是强制的,哪些标签是可选的,请确保没有用于解释的空间。

如果需要在列表之间进行选择,请验证这些值是否定义、一致且易于访问,或者该列表已向用户显示。例如,如果您使用键"Development"定义开发,则不要使用"Dev"、"DEV"或"R&D"等变体来将资源识别为"Development"。

标记集成中的所有元素(手动或通过自动化)

由于无法报告未标记的资源,因此尽可能标记多个元素,最好使用自动化来防止人为错误。集成有不同的自动化功能,可以利用标记:

  • 在 Azure 中,您可以使用 Azure 策略来强制实施标记规则和约定,并避免部署不符合您的预期的资源。您可以创建一个在置备过程中自动应用必要标签的策略,该策略会强制使用预定义的日期格式,或者为某些资源类型发出一些标签强制使用。
  • 在 AWS 中,您可以对相同的使用 IAM 策略。此外,您可以使用 Ansible 等自动化工具在调配期间添加必要的标签,并验证所有资源是否已正确标记。
  • OpenShift Container Platform 不存在一种自动化标记的方法。
经常检查您的标签并根据需要进行优化

定义标签,并在成本管理方面尽可能多地使用标签,即使您需要在之后调整标记方案。

尽早与您的业务所有者和利益相关者审核生成的报告,以确保您的标签帮助您生成所需的报告,并每几周审核您的标记策略以优化它。

选择标签术语
  • 使用名称命名资源,允许您在不访问元数据的情况下识别资源,然后继续在其中添加元数据。许多云都有有关如何正确执行此操作的指南 ; 请参阅 第 5 章 其他资源 了解链接。
  • 将资源映射到键和值。键将映射到视角,而值将定义每个键允许的不同选项。在某些情况下,该值将是 Null
注意

并非所有集成都允许相同的标识符,并且具有不同的限制。有关集成的限制,请参阅 第 5.1 节 “按集成类型划分的标签规格”

第 3 章 在成本管理中配置标签和标签

您必须在每个集成中配置标签,然后才能使用标签自动整理您的成本数据。

将集成添加到成本管理后:

  1. 每个集成上的标签或标记资源。请参阅 第 3.2 节 “在集成上配置标签”
  2. 优化并添加到标签中以优化您的成本数据视图。请参阅 第 2.2 节 “标记策略的注意事项”
注意

有关配置集成的说明 ,请参阅开始使用成本 管理指南。

3.1. 成本管理关联标签的方式

OpenShift 中的标签和 Microsoft Azure 中的标签由 key:value 对组成。当 key:value 对匹配时,AWS/Azure 和 OpenShift 成本会按成本管理自动关联。成本管理中的标签匹配不区分大小写:例如,带有 APP 的 AWS 资源以及标记 app 的 OpenShift 资源是匹配的:

表 3.1. 示例:标签匹配

源和资源类型

AWS 资源(RDS)

APP

cost-Management

OpenShift pod

app

cost-management

如果 AWS 资源标签与多个 OpenShift 项目匹配,则该资源的成本和使用量会在匹配的项目之间平均分割。

与通过实例 ID 节点关系匹配的 AWS 计算资源不同。在这种情况下,使用有关 OpenShift 集群中项目资源消耗的信息来划分成本和使用量。

默认情况下,成本管理通过将 Amazon EC2 实例 ID 或 Microsoft Azure 虚拟机实例 ID 与该实例上运行的 OpenShift Container Platform 节点相关联来跟踪 AWS 计算使用量和成本。

3.1.1. 成本管理中的标签匹配层次结构

要识别在 AWS 或 Azure 实例上运行的 OpenShift 资源,成本管理会按照以下顺序匹配集成之间的标签:

  1. 直接资源匹配(AWS EC2 实例 ID 或 Azure 虚拟机实例 ID)
  2. 特殊 OpenShift 标签
  3. 自定义标签

3.1.2. OpenShift 标签在成本管理方面继承

OpenShift 标签遵循从集群到节点的继承模式,以及从项目到 pod 的继承模式。您可以在节点或项目级别上关联成本,而无需标记集群中的每个 pod。

来自节点和项目标签的键值对在成本管理 pod 指标的 pod 级别继承。来自集群和节点标签的键值对由每个级别的持久性卷声明(PVC)在项目级别继承。您可以按集群、节点或项目标签分组,以查看这些工作负载中的相关 PVC。

如果 pod 中已存在键,则 pod 中该键的值会保留。成本管理不会用项目或节点值覆盖 pod 值。类似的过程从节点到项目。

考虑以下示例。

示例 1:您的机构将标签 app 和值 costpod1 分配给 pod。此 pod 的项目具有标签 app 和值 cost-project。这些资源在具有标签 us-east-1 的节点上运行。标签 app 和值 costpod1 保持与 pod 关联。

示例 2:您的组织有一个带有标签 app 且值为 cost-project 的项目。该项目有三个容器集正在运行,它们没有标记。成本管理将标签 app 和值 cost-project 与这些 pod 关联。

3.1.3. 直接资源匹配(实例 ID)

集成会自动应用这些标识符。这种标记形式提供 Microsoft Azure 或 AWS 实例和 OpenShift 节点之间直接链接。

AWS 为每个 EC2 实例分配一个资源标识符(一个数字,如 i-01f44b3d90ef90055)。OpenShift 节点使用 AWS 资源标识符直接与集群运行的 AWS EC2 实例匹配。OpenShift 报告的成本管理(从 Prometheus 数据生成)包括这个节点的标识符。在 Microsoft Azure 中,每个虚拟机实例 ID 包含在 OpenShift 报告中,用于成本管理。

3.1.4. 特殊 OpenShift 标签

您可以使用三个特殊情况 AWS 标签将成本与 OpenShift 关联:

  • openshift_cluster
  • openshift_node
  • openshift_project

这些标签具有与自定义标签匹配的优先级,在区分在同一 AWS 实例上运行的不同 OpenShift 集群的成本时特别有用。

要使用此标记方法识别 OpenShift 集群,请使用键 openshift_cluster 标记 AWS 实例,并提供 OpenShift 集成名称作为值。在以下示例中,成本管理应用程序中的 OpenShift 集成名称为 dev-cluster

表 3.2. 示例:特殊 OpenShift 标签

源和资源类型

AWS 资源(RDS)

openshift_cluster

dev-cluster

OpenShift cluster

不需要标签。如果成本管理中的 OpenShift 集成名称为 dev-cluster,这将匹配。

不需要标签。

3.1.5. 自定义标签

您可以使用任何 key:value 组合作为标签,成本管理会将相同的标签键和值关联在一起。然后,您可以通过标记密钥、帐户、服务、区域等来组成本,以查看您的成本和对该标签的收费。

表 3.3. 示例:自定义标签

源和资源类型

AWS 资源(RDS)

团队

工程

OpenShift pod

团队

工程

3.2. 在集成上配置标签

要控制标签成本管理导入,激活或启用您要通过集成查看的标签:

3.2.1. 为 AWS 资源添加标签

Amazon 会自动创建某些标识符,如 EC2 实例资源标识符(如 i-123456789),而成本管理使用与标签类似的成本。

您还可以在单独的资源级别添加自己的标签。必须激活这些标签,以便节约成本和使用情况报告,才能将其导出到成本管理应用程序。

使用以下步骤为成本管理配置 AWS 标签:

流程

  1. 创建并应用标签到 AWS 资源。

    注意

    如果您从兼容第三方 Linux 发行版本转换为 Red Hat Enterprise Linux (RHEL),并购买 AWS 中的第三方迁移列表的 RHEL,请激活 RHEL 系统的 AWS Cost Allocation Tags 标签。在 cost allocation tags 页面中启用 com_redhat_rhel 标签。输入 RHEL 7 ELSRHEL 8RHEL 8 ELS 作为标签值,以匹配您的 RHEL 版本。

    有关 AWS 文档中的说明,请参阅 用户定义的成本分配标签

  2. 通过 Cost and Usage Report 激活您要由成本管理应用程序收集的标签。在 AWS Billing 控制台中,从 Cost Allocation Tags 区域选择要激活的标签。

    有关 AWS 文档中的说明,请参阅 激活 AWS 提供的成本分配标签

3.2.2. 为 Microsoft Azure 资源添加标签

添加 Microsoft Azure 集成会为虚拟机实例自动创建标识符,成本管理使用类似标签将 Azure 资源与相关的 OpenShift 资源关联。

您还可以在单独的资源级别在 Microsoft Azure 中添加自己的标签。

使用 Microsoft Azure 文档中的说明为成本管理创建并应用 Microsoft Azure 标签: 使用标签组织 Azure 资源和管理层次结构

3.2.3. 为 Google Cloud 资源添加标签

您可以将自定义标签应用到 Google 云资源,如虚拟机实例、镜像和持久磁盘。这些标签会自动添加到 BigQuery 导出中,并发送到成本管理。

流程

  • 创建并应用标签到 Google Cloud 资源。

    具体步骤请参阅 Google Cloud 文档中的 创建和管理标签

3.2.4. 查看 OpenShift 命名空间中的标签

OpenShift 中等效的 AWS 或 Microsoft Azure 标签是一个标签,还包含 key:value 对。成本管理服务使用 Prometheus 指标和成本管理 Metrics Operator 从节点、Pod 和持久性卷(或持久性卷声明)收集 OpenShift 标签数据。

要查看可用的标签,请导航到 OpenShift Web 控制台中的资源。任何分配的标签都列在 Labels 标题下,例如: openshift.io/cluster-monitoring=true

3.2.5. 在成本管理中启用和禁用标签

默认情况下,所有云供应商标签都会以成本管理的形式激活。有时资源标签太多可能会影响成本管理性能。启用的标签限制为每个帐户 200。在对标签进行分组和匹配 key:value 对时,不必要的标签也可以使管理成本变得更加复杂。禁用您不会主动使用的标签来减少这些潜在问题。

先决条件

  • 您必须具有机构管理员或成本价格列表管理员特权,才能在成本管理中更改这些设置。如需有关用户角色和访问权限的更多信息,请参阅 成本管理入门 中的 限制成本管理资源

流程

  1. 成本管理 中,单击 Cost ManagementSettings
  2. Tags 和 labels 选项卡。
  3. 选择您要禁用的标签。
  4. 单击 Disable tags

    现在,对于成本管理应用程序,这个标签已被取消激活。您可以通过选择您要启用的标签并单击 Enable tags 来启用在同一页面中禁用的标签。

3.2.6. 在成本管理中配置 Amazon Web Services 成本类别

您可以在成本管理服务中启用或禁用 Amazon Web Services (AWS)成本类别。AWS 成本类别允许您的组织在标签之外对有意义的成本和使用量信息进行分组。要在成本管理中使用成本类别,必须首先在 AWS 控制台中配置它们。以下流程描述了如何在成本管理服务中启用成本类别。

先决条件

  • 您必须具有机构管理员或成本价格列表管理员特权,才能在成本管理中更改这些设置。如需有关用户角色和访问权限的更多信息,请参阅 成本管理入门 中的 限制成本管理资源
  • 您已将 Amazon Web Services 集成添加到通过 Amazon Web Services 控制台启用了成本类别的成本管理中。

流程

  1. 成本管理 中,单击 Cost ManagementSettings
  2. Cost categories 选项卡。
  3. 选择要启用的成本类别。您可以选择多个。
  4. Enable categories

    现在,为成本管理应用程序启用所选成本类别。您还可以通过选择您要禁用的成本类别并点 Disable categories 来禁用成本类别。

第 4 章 查看并导出您的成本数据

4.1. 过滤您的成本数据视图

通过标签,您可以自定义成本数据的视图。您可以根据类型(如项目、节点、集群)或标签或标签查看资源,以调查某些资源以成本增加或数据查找异常的原因。

本例演示了如何查看集群中每个 OpenShift 项目的成本。

先决条件

流程

  1. OpenShift 详情 菜单中,单击过滤器按钮并选择 Tag
  2. Choose key 下拉列表中,选择要过滤的密钥。例如,选择 environment 来查看带有 environment 标签的集群。选择一个标签键显示另一个下拉菜单,以选择要过滤的值。
  3. Choose value 下拉列表中,选择要过滤的一个或多个值。例如,选择 qedev,以显示带有这些标签的 OpenShift 项目的成本数据。
  4. 查看每个项目的更多信息:

    • 点每个资源的箭头图标查看资源所属的集群以及 CPU 和内存用量、限制和请求等更多信息。
    • 点击 More options More options icon 来显示更多查看选项:

      • 单击 View price 列表,以查看应用到 OpenShift 指标以计算成本的速率。
      • View historical data 打开每日使用比较视图,该视图将使用量、请求和限制在该资源的月内进行对比。
      • View all projectsView all tags 来查看相关的资源和元数据。
  5. Clear all filters 以重置 OpenShift 详情视图。

4.2. 通过标签类别对成本数据进行分组

您可以根据标签对资源进行分组,以进一步调查您的成本数据。

分组和过滤可用于查找成本或问题的根本原因,或调查部分行为独立于其他环境,如成本中心或特定环境。

这可让您隐藏环境的其余部分信息,以帮助避免成本数据结果不必要的复杂性,并允许您查找所需信息,否则可以隐藏其他数据。

本例演示了在 OpenShift Container Platform 上运行实验室环境的教育课程供应商如何使用标签分组来根据人员和课程过滤成本信息。

先决条件

流程

  1. Group cost by: 字段中的 OpenShift 详情页面中,选择要按成本分组的标签键。在这种情况下,选择 Tag Key:user 以显示按 student 用户分组的结果。
  2. 在过滤器区域中,选择 Tag
  3. Choose key 列表中,选择标签键 用户
  4. Choose value 下拉列表中,检查 course_idcourse_type 值,以识别课程 X 和课程的成本。
  5. 要查看每个资源的更多信息,例如,X 具有成本量:

    • 点每个资源的箭头图标查看资源所属的集群以及 CPU 和内存用量、限制和请求等更多信息。
    • View Historical Data 打开每日使用比较视图,该视图与该资源每天的使用情况、请求和限制进行比较。
    • 点击 More options More options icon 来显示更多查看选项:

      • View historical data 打开每日使用比较视图,该视图将使用量、请求和限制在该资源的月内进行对比。
      • Export data 创建用于报告的 .CSV 文件。指定每日或每月聚合,然后点 Generate and download
  6. Clear all filters 以重置 OpenShift 详情视图。

4.3. 将成本数据导出到报告工具

通过标签,您可以自定义成本数据的视图。当您想进一步调查某些资源成本增加或数据看起来异常时,这非常有用。

本例演示了如何查看特定 OpenShift 资源的数据,并将数据导出到您所需的报告工具。

先决条件

流程

  1. OpenShift 详情 菜单中,单击过滤器按钮并选择 Tag
  2. Choose key 下拉列表中,选择要过滤的密钥。例如,选择 版本。选择一个标签键显示另一个下拉菜单,以选择要过滤的值。
  3. Choose value 下拉列表中,选择要过滤的一个或多个值。例如,选择 qedev,以显示带有这些标签的 OpenShift 资源的成本数据。
  4. 要导出资源的数据,请选中您要导出数据的每个资源旁边的框。单击 Export 以打开导出选项对话框。
  5. 指定每日或每月聚合,然后点 Generate and download

CSV 文件将下载到本地系统,您可以在所需的报告工具中使用它。

注意

您还可以从 更多选项 More options icon > Export data 菜单将数据导出为 .CSV 文件。

Clear all filters 以重置 OpenShift 详情视图。

第 5 章 其他资源

5.1. 按集成类型划分的标签规格

标记标准在集成类型之间有所不同。要在集成间使用相同的标签/标签,您必须使用不同提供程序中最常见的所有限制。

下表总结了 AWS、Azure 和 OpenShift Container Platform 4 中的标记和标记条件:

表 5.1. 通过集成标记规格

标准AWSAzureGoogle CloudRed Hat OpenShift

Name

Tags

Tags

标签

标签

格式

键和值

名称和值

键和值

key & value Keys: [prefix/]name Prefix: 必须是 DNS 子域

允许空值

每个键的唯一标签

区分大小写

只包括小写字母

每个资源的限值

50

50 (15 用于存储)

64

N/A

密钥长度

128

512 (用于存储 128)

63

253 (prefix)/ 63 (name)

值长度

256

256

63

63

允许字符

UTF-8 中代表字母、数字和空格,以及以下字符:+ - = _ : / @

标签名称不能包含这些字符: <, >, %, &, \, ?, /

只包括小写字母、数字字符、下划线和短划线。

名称段是必需的,且长度为 63 个字符或更少,开头和以字母数字字符([a-z0-9A-Z])开头,带有短划线(-)、下划线(_)、点(.)和字母数字字符之间的字母数字字符(.)

限制

前缀 "aws:" 被保留。应用到 EC2 的标记可以使用任何字符。并非所有资源类型都支持标签。

并非所有资源类型都支持标签。常规化虚拟机不支持标签。应用到资源组的标签不会由资源继承。

键必须以小写或国际字符开头。

保留前缀 kubernetes.io/ 和 k8s.io/。并非所有资源类型都支持标签。

备注

您需要选择将包含在成本和使用量文件和计费报告中的标签键。

您可以使用 JSON 字符串来超出密钥的限制。

对一个项目中的所有资源可以应用多少标签没有限制。

如果省略了前缀,则标签 Key 被假定为用户私有。

5.2. 进一步阅读

以下链接提供有关每种集成类型的更多对标记的指导。

AWS:

openshift:

Microsoft Azure:

Google Cloud:

对红帽文档提供反馈

如果您发现了错误,或者对如何改进这些指南有建议,请在 成本管理 JIRA 板 中创建一个问题并添加 Documentation 标签。

非常感谢您的反馈意见!

法律通告

Copyright © 2024 Red Hat, Inc.
The text of and illustrations in this document are licensed by Red Hat under a Creative Commons Attribution–Share Alike 3.0 Unported license ("CC-BY-SA"). An explanation of CC-BY-SA is available at http://creativecommons.org/licenses/by-sa/3.0/. In accordance with CC-BY-SA, if you distribute this document or an adaptation of it, you must provide the URL for the original version.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, the Red Hat logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.