使用成本模型

Cost Management Service 1-latest

配置成本模型以反映您的云成本

Red Hat Customer Content Services

摘要

本指南解释了成本模型功能、配置和相关术语。成本管理是 Red Hat Insights 服务产品组合的一部分。高级分析工具的 Red Hat Insights 套件可帮助您识别和优先影响您的操作、安全性和业务。

第 1 章 使用成本模型并分析您的使用情况

您可以在成本管理中使用成本模型,在混合云环境中应用价格,然后将成本分发到资源。

1.1. 什么是成本模型?

很难找出基于云的 IT 系统的实际成本。不同的集成提供了各种成本数据和指标,它们可能比较复杂,可以一起计算和准确分发成本。

成本模型是一个框架,用于定义成本管理中存储的成本计算。通过使用成本模型,您可以将定价与集成提供的指标相关联,以收取资源利用率。

在某些情况下,这些成本与基础架构的原始成本相关,而其他成本则基于与成本相关的价格列表。必须先对数据进行规范化,然后才能向其添加标记以覆盖您的开销,然后将收费分发到您的资源或最终客户。它有助于将成本与利用率保持一致:那些使用资源的客户将做更多费用。

1.2. 成本模型概念

这些术语和概念对于理解成本管理的成本模型工作流非常重要。

成本模型
成本模型是一个框架,用于定义使用原始成本和指标以成本管理成本计算的计算。成本模型用于预算和核算,以及成本管理的视觉化和分析 - 它为用户将查看的成本信息提供了基础。通过成本模型生成的成本可以记录、分类并分配给特定客户、业务单元或项目。

1.2.1. 成本层

可以在环境的不同层创建成本。在成本管理中,所有成本都可以归类为基础架构或补充成本(包括您没有被识别为基础架构的成本)。在您的成本模式中,您可以选择分配和介绍成本,作为这些成本层中的任何一个。因此,您可以自定义每个详情页面中显示哪些成本管理。

基础架构成本

这个成本可能来自两个不同的集成:

  • 通过 Amazon (AWS)成本和使用情况报告、Microsoft Azure 或 Google Cloud 导出直接报告云供应商的成本。在当前成本管理版本中,所有云成本都被视为基础架构成本。
  • 从价目表计算的成本特别标记为基础架构。

    注意

    默认情况下,OpenShift Container Platform 节点和每个月的集群成本被归类为基础架构成本,但可以选择归类为补充组。

补充成本
不直接对基础架构指示的所有成本都被识别为补充成本。在当前的成本管理版本中,这些成本源自将价格列表应用到从 OpenShift 集群获取的指标。价格列表中的速率必须指定为补充组。这是所有 OpenShift 成本(每个月节点和集群成本除外)的默认值。

1.2.2. 成本模型术语

Cost
基础架构与补充成本的总和。这可以被认为是所显示的过滤数据的"总成本" (例如,特定帐户、区域或服务的成本)。
原始成本
云供应商报告的成本没有应用任何成本模型计算。
markup

通过对成本管理应用程序中的基础架构原始成本应用标记或折号来计算的成本部分。

示例:对于原始成本为 $100,标记为 10%,标记为 $10,成本为 $110 (同时消耗这两者)。

Request(请求)
OpenShift 报告请求的 Pod 资源。
使用方法
由 OpenShift 报告使用的 Pod 资源。
使用成本

通过将每小时或每月价格列表率应用到指标来计算的成本部分。

示例:对于 100 个内核小时和速率为 $1/core-hour 的指标,用量成本为 100。

有效使用
每小时使用的或请求的 pod 资源(以较大者为准)。
每月成本

通过将每月价格列表率应用到作为使用成本一部分返回的指标来计算的成本部分。可以以成本模型为 OpenShift 节点或集群配置每月成本,例如:

每月的成本目前显示为成本管理 API 和界面的使用情况成本的一部分。

注意

这些成本目前没有在 API 中报告周期内得到处理,因此当查看每日成本的每日成本时,每月的成本将仅在每月第一月显示。

示例:对于每个月有 10 个节点的 OpenShift 集群,每月的比率为 10,000,每月的成本为 100,000。

价格列表
应用程序成本模型中使用的速率列表,用于计算资源的使用情况成本。
分布式成本
通过成本模型计算的成本被分发到更高级别的应用程序概念,如项目、帐户、服务等。分发成本的方式取决于成本模型中分配的成本类型(基础架构或补充)。
计数(集群)
在月中标识的集群数量不同。
计数(节点)
在月中标识的不同节点数。
计数(持久性卷声明)
在月中识别的不同卷声明数量。

1.3. 成本模型工作流

下图显示了成本模型工作流,使用成本管理将价格应用到指标和库存,从不同集成规范化成本数据,应用标记(或折现),然后在相关资源间分配成本。

成本模型还有助于区分成本管理中的原始成本。

Diagram described by the following paragraph

  1. 成本管理从几个集成收集成本数据:

    • Inventory - 集成中运行的所有资源的列表,无论它们是否存在使用。例如,如果您的 OpenShift Container Platform 环境包含一个没有使用的节点,则该节点仍每月成本为 $x。可以通过多种方式将清单数据收集到成本管理中:成本管理可从 AWS 成本和使用情况报告、Azure 或 Google Cloud 导出或 OpenShift Metering Operator 报告生成清单。
    • Metrics - OpenShift 清单的一个子集,显示每个资源的使用情况和消耗。
    • Cloud raw 成本 - AWS、Azure 和 Google Cloud 为成本管理列表消耗提供常规报告,包括管理用于计算的成本。因此,云集成不需要配置自定义价格列表。
  2. 通过 成本模型,您可以应用您选择的标记或折现以考虑其他成本和开销,并提供用于为成本分配成本层(基础架构或补充)的选项:

    1. 对于 OpenShift Container Platform 集成 - 因为指标和清单数据没有分配给使用价格,因此您必须创建并分配一个 价格列表,以确定这些 资源的使用情况成本。价格列表包括存储、内存、CPU 使用量和请求以及集群和节点的速率。
    2. 对于 AWS、Azure 和 Google Cloud 集成 - 您可以通过应用 标记 百分比或负百分比来考虑这些集成的成本模型,以便考虑环境中任何额外成本或开销。
  3. 然后,集成 的成本会一起收集并分配为基础架构成本 和补充成本
  4. 然后,成本会分布到环境中的资源。根据您的机构,这些资源可能包括 OpenShift 项目、节点或集群以及云集成服务或帐户。您还可以使用标记按机构中的团队、项目或组分配成本。
注意

有关为成本管理配置标记的更多信息,请参阅使用标记管理成本数据

1.4. 分析未使用的集群和节点容量

您可以通过检查集群的未请求容量和未使用的容量,以成本管理来分析集群使用量。未请求的容量标识集群中正在使用的请求资源量。当这个值高时,集群中的节点会请求超过其使用的资源。您可以查找负责和调整请求的节点,以便提高集群使用效率。但是,使用量可能会超过请求的数量,因此未使用的容量可帮助您了解是否应调整总容量。

Request(请求)
请求的 Pod 资源,OpenShift 报告。
未请求容量
是请求减去用法。
有效使用
每小时使用的或请求的 pod 资源(以较大者为准)。
未使用的容量
是容量减去有效使用量。

如需更多信息,请参阅 第 1.2 节 “成本模型概念”

先决条件

流程

  1. 登录到 Red Hat Hybrid Cloud 控制台
  2. Services 菜单中,单击 Spend ManagementCost Management
  3. 查看未使用的集群容量和未请求的集群容量:

    1. 在 Global Navigation 中,点 Cost ManagementOpenShift
    2. 在 OpenShift 详情页面的 Group By 菜单中,选择 Cluster。根据集群 过滤,然后从结果中选择集群。
    3. 在成本概述选项卡中,您可以在 CPU 标题中看到未使用的容量和未请求的容量。如果未请求的容量大于未使用的容量,或者未请求的内核小时过高,则您可以搜索集群中负责的节点。
  4. 查看未使用的节点容量和未请求的节点容量:

    1. 在 Global Navigation 中,点 Cost ManagementOpenShift
    2. 在 OpenShift 详情页面的 Group By 菜单中,选择 Node。根据 节点 过滤,然后从结果中选择节点。
  5. 如果未请求的容量大于未使用的容量,或者未请求的内核小时过高为节点的容量百分比,您可以在云服务供应商中调整它们以优化云成本。

1.5. 了解成本管理成本分布

成本可能分为两个不同的组:

平台成本
运行 OpenShift Container Platform 的成本。平台成本包括带有标签 Default 的所有项目的成本,以及添加到 平台组的任何其他项目
worker 未分配的成本
代表 worker 节点用量和请求容量的任何未使用部分的成本。

1.5.1. 分发成本

要在项目中配置平台和 worker 未分配成本,您可以将成本设置为 Distributeno distribution。当您创建成本模型时,成本 默认设置为 Distribute。此默认设置意味着平台项目的成本设为零。

根据有效 CPU 的有效 CPU 总和或成本模型的内存用量,将成本分配到您的项目成本。大多数用户使用默认的 Distribute 设置来 跟踪其组织的平台和 worker 未分配成本。

如果您将成本设置为 Do not distribution,则每个 Platform 项目的成本将单独显示,而不是分散到所有项目。仍计算 worker 未分配的成本,但它显示为 OpenShift 详情页面中的 单个项目。使用此选项时,您无法了解成本如何分发到用户项目。

您始终可以独立分发平台或 worker 未分配的成本,也可以选择分发它们。

1.5.2. 计算成本

成本管理除了项目成本外,使用有效使用量计算平台和 worker 未分配的成本。

要分发平台成本,成本管理使用以下公式:

(individual 用户项目有效使用)/(适用于所有用户项目的有效用法的使用)*(平台成本)

要分发 worker 未分配成本,成本管理使用以下公式:

(individual 用户项目有效使用)/(用于所有用户项目的有效用法的使用率)X (worker 未分配的成本)

1.5.3. 添加 OpenShift 项目

在成本管理中,名为 PlatformGroup 具有您无法删除的默认项目。这些项目以前缀 openshiftkube 开头,并在 OpenShift 详情页面中 有一个 Default 标签。您可以将自己的项目添加到 Platform 组中,以便您对被视为平台成本的控制权。具有某些平台项目成本的任何项目都具有 Overhead 标签。

例如,您可能具有考虑开销的成本,您希望以平台成本的形式显示。您可以为平台项目添加成本,以根据您的成本模型分发成本。

先决条件

  • 您必须有一个将成本模型设置为 Distribute 的集群

流程

要将 OpenShift 项目添加到 Platform 组中,请完成以下步骤:

  1. 在成本管理中的 Settings 中,点 Platform projects 选项卡。
  2. 选择要添加到 Platform 组的项目。
  3. 单击 Add projects

该项目现在具有标签 Platform而不是 标签 Default

验证

完成以下步骤以验证您的成本是否已正确分发:

  1. 在成本管理中,点 OpenShift 打开 OpenShift Details 页面。
  2. 选择您在前面的步骤中编辑的项目的集群。

该项目应该显示 $0 的成本,因为您要设置在所有其他项目之间分发的成本。具有 Overhead 标签的项目包括该项目的成本加上默认项目成本。

Resources

有关成本模型的更多信息,请参阅以下资源:

第 2 章 设置成本模型

根据您的要求,以成本管理方式配置成本模型。

2.1. 对云集成应用标记或折扣

创建 AWS、Azure 或 Google Cloud 成本模型,以针对您的云基础架构成本应用标记或折扣。

随着云基础架构集成(AWS、Azure 或 Google Cloud)在已分配价格的情况下将成本和使用量数据收集到成本管理中,您只需要分配标记或折现,以准确反映您的成本。

原始成本 中添加标记可以让您考虑开销成本,如管理 AWS 帐户、Azure 订阅或其他支持成本。标记是覆盖指标或使用情况未显示的成本的估算。

本例演示了如何将 10% 标记添加到从 AWS 成本和使用情况报告收集的信息。相同的方法可用于对您的 Azure 或 Google Cloud 成本进行标记或折现。

注意

创建、编辑或删除成本模型仅更新从当前月的第一天开始计算。

先决条件

流程

  1. 成本管理 中,单击 Cost ManagementSettings
  2. Cost models 选项卡中,点 Create cost model 打开成本模型向导。
  3. 输入成本模型的名称和描述,然后选择 Amazon Web Services (AWS) 作为集成类型,以将成本模型应用到。点击 Next
  4. 要将 10% 标记应用到资源的基本成本,请在 Markup 率 中输入 10,然后单击 Next

    注意
    • 要申请折扣,而不是标记,请使用值输入减号(例如 -15)。
    • 如果您不想应用标记或折扣,请输入 0。
  5. 选择一个或多个 AWS 集成来分配成本模型,然后点 Next。选择已分配成本模型的集成将覆盖其以前的成本模型。您还可以稍后为您的成本模型分配集成。
  6. 查看成本模型详情,然后点 Create
  7. Close 退出成本模型向导。

您新的成本模型将显示在 成本模型页面的列表中

后续步骤

  • 成本模型 概述页面中,您可以查看成本模型的信息,包括:

    • 为其创建的成本模型集成类型
    • 分配给成本模型的集成数量
    • 最后修改成本模型的日期
  • 要查看更多信息、分配或编辑成本模型:

    • 成本模型 摘要页面中,单击成本模型名称,以调出详情页,您可以在其中编辑成本模型,包括集成分配、标记和其他设置。
  • 要删除成本模型:

    • 成本模型 概述页面中,点 More options More options icon ,然后点 Delete
  • 查看您的标签和标记策略,以确保将成本分发到正确的资源、成本中心或团队。如需更多信息,请参阅使用标记管理成本数据

2.2. 为 OpenShift Container Platform 集群创建成本模型

因为 OpenShift Container Platform 集成的指标和清单没有成本,所以您必须创建一个成本模型来为资源关联价格。

为 OpenShift 集成创建成本模型包括:使用 CPU内存节点集群存储持久性卷声明 指标分配价格,以及应用标记或折现,以确定 OpenShift 基础架构的总成本。您还可以使用标签来衡量基础架构特定部分的成本,如各种存储方法,您可以更好地控制各个要求。如需有关成本管理中的标记的更多信息,请参阅使用标记管理成本数据

本例演示了如何在云基础架构(如 AWS 或 Azure)上为 OpenShift Container Platform 集群设计和应用成本模型。云基础架构成本以成本管理方式视为集群成本,因此,通过创建成本模型,您可以分发底层基础架构成本来准确反映运行集群的成本。

注意

创建、编辑或删除成本模型仅更新从当前月的第一天开始计算。

先决条件

流程

  1. 成本管理 中,单击 Cost ManagementSettings
  2. Cost models 选项卡中,点 Create cost model 打开成本模型向导。
  3. 输入成本模型的名称和描述,然后选择 OpenShift Container Platform 作为集成类型,以将成本模型应用到其中。点击 Next
  4. 创建价格列表,以便您可以为使用情况或请求分配费率。成本管理服务从 OpenShift 收集这些指标,但在应用成本模型前,没有成本管理成本。您还可以稍后创建您的价格列表。

    1. 要应用每月的节点成本 1,000:

      1. Create rate
      2. 对于 Metric,请选择 Node
      3. 对于 测量,请选择 Count (node-month)
      4. 默认情况下,成本管理服务将节点和集群成本作为 基础架构成本 进行分类。要更改您正在计算的成本类型,请在 Calculat ion 类型下选择 它。请参阅 第 1.2.1 节 “成本层” 以了解更多信息。
      5. Rate 字段中,输入 1000 以为您选择的集成中的每个节点分配 1,000 个每个价格(在后续步骤中)。
      6. Create rate 保存节点率。
    2. 将速率应用到 CPU 请求:

      1. Create rate
      2. 对于 Metric,请选择 CPU
      3. 对于 测量,请选择 Request (小时)
      4. 成本管理服务默认将基于指标的数据(如 CPU 请求)作为 补充成本 进行分类。要更改您正在计算的成本类型,请在 Calculat ion 类型下选择 它。请参阅 第 1.2.1 节 “成本层” 以了解更多信息。
      5. Rate 字段中,输入 0.09 以对 CPU 请求的每个内核小时应用 10.09 成本。
      6. Create rate 保存 CPU 请求率。
    3. 要将基于标签的速率应用到持久性卷声明:

      1. Create rate
      2. 对于 Metric,请选择 持久性卷声明
      3. 对于 测量,请选择 Count (pvc-month)
      4. 默认情况下,成本管理服务将持久性卷声明率分类为 基础架构成本。要更改您正在计算的成本类型,请在 Calculat ion 类型下选择 它。请参阅 第 1.2.1 节 “成本层” 以了解更多信息。
      5. 选择 Enter rate by tag
      6. Filter by tag key 字段中输入标签键。
      7. 输入 Tag 值和 Rate。您可以选择 Default 将速率指定为该标签键的默认值。

        注意
        • 指定默认率会将该速率应用到未定义的对应标签键的所有标签值。对于您不想应用默认率的任何标签值,您可以输入 0 率。
      8. Add more tag 值,根据需要添加任意数量的标签值。
      9. Create rate 保存持久性卷声明率。
    4. 重复前面的步骤来添加额外费率,或者单击 Next 以完成您的价格列表配置。
  5. 如果需要,设置标记或折扣。要将 10% 标记应用到资源的基本成本,请在 Markup 率 中输入 10,然后单击 Next

    注意
    • 要申请折扣,而不是标记,请使用值输入减号(例如 -15)。
    • 如果您不想应用标记或折扣,请输入 0。
  6. Cost distribution 页面中,选择 CPUMemory distribution 类型。分发类型根据项目成本分类中的 CPU 或内存指标发布成本。如果您的集群有较高的内存用量,请选择 Memory。如果您的集群具有高 CPU 用量,请选择 CPU
  7. Cost distribution 页面中,选择是否要将您的平台或 Worker 未分配 的成本分发到您的项目中,然后点 Next
  8. 选择一个或多个 OpenShift 集成来分配成本模型,然后点 Next。选择已分配成本模型的集成将覆盖其以前的成本模型。您还可以稍后为您的成本模型分配集成。
  9. 查看成本模型详情,然后点 Create
  10. Close 退出成本模型向导。

您新的成本模型将显示在 成本模型页面的列表中

后续步骤

  • 成本模型 概述页面中,您可以查看成本模型的信息,包括:

    • 为其创建的成本模型集成类型
    • 分配给成本模型的集成数量
    • 最后修改成本模型的日期
  • 要查看更多信息、分配或编辑成本模型:

    • Cost model summary 页面中,点成本模型名称来启动详情页,您可以在其中编辑成本模型,包括集成分配、价格列表、标记和其他设置。
  • 要删除成本模型:

    • 成本模型 概述页面中,点 More options More options icon ,然后点 Delete
  • 查看您的标签和标记策略,以确保将成本分发到正确的资源、成本中心或团队。如需更多信息,请参阅使用标记管理成本数据

2.3. 使用成本模型计算有效使用

无论您的总体使用情况如何,云供应商都负责运行集群的基础架构成本。通过计算成本管理中的有效使用,您可以通过考虑它们的直接利用率来更准确地将云成本与 pod 或命名空间相关联。

pod 通常从集群中请求资源,如 CPU 或内存。然后,集群会至少保留这些请求的资源,但 pod 可能会使用超过初始请求的资源。成本管理中的有效使用量指标使用哪种类型的使用量(CPU 或内存)会每小时更长。

您可以以成本管理方式创建成本模型,以估算您的有效使用情况。最终,您可以使用这些数据了解基础架构成本如何分发到 OpenShift 项目。

先决条件

流程

  1. 登录到 Red Hat Hybrid Cloud Console
  2. Services 菜单中,单击 Spend ManagementCost Management
  3. 在 Global Navigation 中,点 Cost ManagementSettings
  4. Cost Models 选项卡中,点 Create cost model 打开成本模型向导。
  5. 输入成本模型的名称和描述,然后选择 OpenShift Container Platform 作为集成类型。点击 Next
  6. 创建一个价格列表,以便您可以为使用情况或请求分配费率。成本管理服务从 OpenShift 收集这些指标,但在应用成本模型前,没有成本管理成本。

    1. 要创建计算有效 CPU 用量的价目列表,请单击 Create rate

      1. 添加描述。在本例中,输入有效的 cpu usage
      2. Metric 字段中,选择 CPU
      3. Measurement 字段中,选择 Effective-usage (core-hours)
      4. Rate 字段中,输入您为 CPU 使用率支付的速率。在本例中,输入 2。点 Create rate
    2. 要创建计算有效内存用量的价目表,请单击 Create rate

      1. 添加描述。在本例中,输入有效的内存用量
      2. Metric 字段中,选择 Memory
      3. Measurement 字段中,选择 Effective-usage (GB-hours)
      4. Rate 字段中,输入您为内存用量支付的速率。在本例中,输入 1。点 Create rate
  7. 点击 Next
  8. (可选)在 成本计算 页面中,应用标记或折扣来更改如何为您的集成计算原始成本。在 原始成本 中添加标记可以让您考虑开销成本,如管理 AWS 帐户、Azure 订阅或其他支持成本。标记是覆盖指标或使用情况未显示的成本的估算。
  9. Cost distribution 页面中,选择 CPUMemory distribution 类型。分发类型根据项目成本分类中的 CPU 或内存指标发布成本。如果您的集群有较高的内存用量,请选择 Memory。如果您的集群具有高 CPU 用量,请选择 CPU。点击 Next
  10. 为您的成本模型分配集成,然后点 Next
  11. 检查详情,然后点 Create
  12. 要在集成上查看成本模型的结果,请在 Global Navigation 中点 Cost ManagementOpenShift
  13. 选择一个项目并查看结果。

对红帽文档提供反馈

如果您发现了错误,或者对如何改进这些指南有建议,请在 成本管理 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.