成本管理入门

Cost Management Service 2021

了解并配置成本管理

Red Hat Customer Content Services

摘要

本指南描述了开始使用成本管理的初始步骤。

第 1 章 成本管理简介

本文档提供了开始使用成本管理的说明,包括连接云环境的先决条件和说明,以及配置用户和权限。

完成本指南中描述的设置后,您可以跟踪 Amazon Web Services(AWS)、Microsoft Azure、Google Cloud 和 OpenShift Container Platform 环境的成本和使用数据。

如果您对本指南有任何改进建议,或发现了任何错误,请访问 http://bugzilla.redhat.com, 针对 Cloud Software Services(cloud.redhat.com) 提交 Bugzilla 报告,以了解 成本管理 组件。

1.1. 关于成本管理

成本管理是一个 OpenShift Container Platform 服务,可让您更好地了解并跟踪云和容器的成本。它基于上游项目 Koku。

您可以从 https://cloud.redhat.com/cost-management/ 访问成本管理应用程序 https://cloud.redhat.com/cost-management/

通过成本管理,您可以简化不同环境中对资源和成本的管理,包括:

  • 容器平台,如 OpenShift Container Platform
  • 公共云,如 Amazon Web Services(AWS)、Google Cloud 和 Microsoft Azure

成本管理应用程序允许您:

  • 视觉化、理解和分析资源和成本的使用情况
  • 预测将来的消耗并将其与预算进行比较
  • 优化资源和消耗
  • 确定应该调查的使用模式
  • 与可以从成本和资源配置中受益的第三方工具集成

1.1.1. 术语

Source
连接到成本管理的云供应商帐户,如 OpenShift Container Platform 部署、AWS 或 Azure 帐户。
机构管理员
红帽帐户最高权限级别,它可以完全访问内容和功能。这是管理用户并控制用户帐户的访问和权限的唯一角色。帐户可能具有多个机构管理员。

如需了解更多详细信息 ,请参阅 Red Hat Subscription Management 的角色和权限

1.2. 规划成本管理

根据需要配置成本管理时,请考虑您要管理成本的环境范围,以及可访问数据的用户。

为不同客户类型创建新红帽机构和用户的一些注意事项包括:

Scope:

  • 客户公司范围
  • 客户部门或机构范围
  • 管理几个租户的合作伙伴公司

data:

  • 您业务如何需要数据?例如,您是否想要项目信息或用户信息?
  • 规划 AWS 标签以反映以前的用例。
  • 强制:您是否能够确保将正确的标签和元数据包括在清单的每个项目中?

用户访问:

  • 您希望您的用户拥有什么级别的访问权限?
  • 您是否希望某些用户可以访问所有成本数据,而其他用户只能查看部分环境或某些源?

第 2 章 限制对成本管理资源的访问

您可能不希望用户访问所有成本数据,而是只希望其项目或机构特定的数据。使用基于角色的访问控制,可以限制成本管理报告涉及的资源的可见性。例如,您可能想要将用户的视图限制为只使用 AWS 源,而不是整个环境。

基于角色的访问控制通过将用户整合到组来实现,这些组可与一个或多个角色关联。角色定义了权限和一组资源定义。

默认情况下,不是帐户管理员的用户将无法访问数据,但必须被授予对资源的访问权限。帐户管理员可以在没有任何基于角色的访问控制配置的情况下查看所有数据。

注意

配置红帽帐户用户需要具有机构管理员权利的红帽帐户用户。通过这个红帽登录,可以查找用户并将其添加到组中,并分配控制资源可见性的角色。

有关红帽帐户角色的更多信息,请参阅 红帽订阅管理的角色和权限 以及 如何创建和管理用户

2.1. 成本管理的默认用户角色

您可以配置自定义用户访问角色来进行成本管理,或为每个用户分配预定义的角色。

要使用默认角色,请根据成本管理中的以下预定义角色确定允许用户所需的访问权限级别:

Administrator 角色

  • 成本管理员:具有对成本管理中的所有资源的读写权限
  • 成本价格列表管理员:具有价格列表率的读写权限

viewer 角色

  • cost Cloud Viewer:具有与云源相关的成本报告读取权限
  • 成本 OpenShift Viewer:具有与 OpenShift 源相关的成本报告读取权限
  • 成本价格列表查看器:具有价格列表率的读取权限

2.2. 添加角色

创建一个新角色来管理和限制用户在成本管理中可以查看的信息范围。

先决条件

  • 您必须是帐户管理员或具有 RBAC Administrator 角色的组的成员才能创建角色。

流程

  1. 从成本管理中,点 configuration gear (Settings)导航到 User Access
  2. Roles 选项卡。
  3. Create Role 打开 Add 角色 向导。
  4. Name 和 Description 屏幕中,输入新角色的名称,以及可选的描述。点 Next
  5. Permission 屏幕中,指定您要创建角色的 Red Hat Cloud Services 应用程序(本例中为成本管理)以及资源和权限类型:

    1. 对于 Application,请输入 成本管理
    2. 对于 资源类型,指定此权限将从以下列表中访问的资源:

      • aws.account
      • aws.organizational_unit
      • azure.subscription_guid
      • openshift.cluster
      • openshift.node
      • openshift.project

        备注
        当您将 AWS 机构单元添加 为资源类型 时,任何有权访问父节点的用户也可以访问父节点的所有子子对象。
    3. 对于 Permission,请指定 因为 所有成本资源数据都是只读的。

      例如,要创建一个对 AWS 帐户数据具有只读权限的角色,将 aws.account 设置为 Resource 类型,然后 读取Permission。在下一步中,您可以指定要将此角色应用到的 AWS 帐户。

  6. 在 ResourceDefinition 屏幕中,您可以提供有关权限将用于的资源的更多详情。例如,要向特定 AWS 帐户授予此角色的访问权限,请输入以下内容并点击 Add to 定义:

    • key: aws.account

      • Key 的选项有: aws.accountaws.organizational_unitazure.subscription_guidopenshift.clusteropenshift.nodeopenshift.project
    • operating: Equal

      • 如果 您知道准确的值,或 list 来查看 该角色可以正常工作的值列表,则使用相等。
    • value: 您的 AWS 帐户号或帐户别名。

      • 这特定于 Key 字段中定义的资源。示例包括 AWS 帐户 ID 或别名、AWS 机构单元、Azure 订阅 ID、OpenShift 集群 ID、OpenShift 节点名称或 OpenShift 项目名称。

        您也可以在此字段中作为通配符输入 *,以创建一个与 Key 中定义的所有资源类型匹配的角色。

  7. 如果需要,添加更多资源定义,然后在完成时点击 Next
  8. 查看此角色的详情并点击 Confirm 创建角色。

您的新角色将在 User Access Management 屏幕中的 Roles 选项卡中列出。

后续步骤

  • 为组添加此角色,以便为角色提供对资源的访问权限。

2.3. 为组添加角色

将您的角色添加到组中,以管理和限制该组中用户可在成本管理中看到的信息范围。

先决条件

  • 您必须是帐户管理员或具有 RBAC Administrator 角色的组的成员才能创建角色。

流程

  1. 从成本管理中,点 configuration gear (Settings)导航到 User Access
  2. Groups 选项卡。
  3. Create group
  4. General information 屏幕中,输入新组的名称,以及可选的描述。点 Next
  5. Add member 屏幕中,选择您机构中的用户以添加到新组中。点 Next
  6. (可选)在 Select roles 屏幕中,选择一个或多个角色来添加到组中。

    用于成本管理的默认角色是:

    • 成本管理员 : 授予读写权限
    • 成本 Cloud Viewer : 授予与云源相关的成本报告的权限
    • 成本 OpenShift Viewer : 授予与 OpenShift 源相关的成本报告读取权限
    • 成本价格列表管理员 : 授予价格列表率的读写权限
  7. 检查此组的详情并点击 Confirm 创建组。

您的新组将列在 User Access 屏幕的 Groups 列表中。

要验证您的配置,请注销成本管理应用程序,然后以添加到组的用户身份重新登录。

第 3 章 在成本管理中添加 OpenShift Container Platform 源

为了支持 Red Hat OpenShift Container Platform 4.6 及更新版本中的成本管理,增加了一个新的经过认证的 Operator( Cost Management Metrics Operator)

在 Red Hat OpenShift Container Platform 4.5 上希望使用成本管理的用户可以安装 community operator koku-metrics-operator。有关安装 和配置说明,请参阅 Koku 社区文档

3.1. 安装任务概述

无论您将之前的成本管理 Operator 替换为 Cost Management Metrics Operator,还是第一次安装它,基本任务都是相同的。

Operator 安装、配置和源管理都可以通过 OpenShift Container Platform Web 控制台执行。

您将执行以下任务来安装 Cost Management Metrics Operator,并开始使用 OpenShift Container Platform 中的成本管理应用程序。

注意

要从 OpenShift Container Platform Web 控制台安装和配置 Cost Management Metrics Operator,您必须使用具有集群管理员特权的帐户。

先决条件

  • 安装了 OpenShift Container Platform 集群。
  • 您可以使用具有集群管理员特权的帐户来访问 OpenShift Container Platform Web 控制台。

task summary

  • 安装 Cost Management Metrics Operator(costmanagement-metrics-operator)并使用默认令牌身份验证。
  • 创建一个 CostManagementMetricsConfig YAML 文件来配置成本 management-metrics-operator
  • 使用新安装创建一个成本管理 OpenShift Container Platform 源,或者确认具有替换安装的现有源。
  • 安装 Cost Management Metrics Operator 后,删除旧的成本 Operator。只有在安装了以前的成本管理 Operator 时,才需要此任务。

如果使用基本身份验证,则需要额外的步骤来配置包含用户名和密码凭证的 Secret。

3.2. 安装成本 Operator

从 OpenShift Container Platform Web 控制台安装 Cost Management Metrics Operator

先决条件

  • 使用集群管理员权限登录到 OpenShift Container Platform web 控制台。

流程

  1. 登录到 OpenShift Container Platform Web 控制台,点 Operators > OperatorHub 选项卡。
  2. 搜索并找到 Cost Management Metrics Operator
  3. 点显示的 Cost Management Metrics Operator 标题。
  4. 当出现 Install Operator 窗口时,您必须为安装选择 costmanagement-metrics-operator 命名空间。如果命名空间尚不存在,则会为您创建命名空间。
  5. Install 按钮。
  6. 短等待后, Cost Management Metrics Operator 会出现在 Project( 所有项目或 Project: costmanagement -metrics-operator)下的 Installed Operators 选项卡中。

3.3. 为新安装配置 Operator 实例

安装成本 management- metrics-operator 实例后, 使用 OpenShift Container Platform Web 控制台配置它。

先决条件

  • 使用集群管理员权限登录到 OpenShift Container Platform web 控制台。
  • Cost Management Metrics Operator 会 出现在 Installed Operators 选项卡中。

流程

  1. 在安装的 Operator 列表中的 Name 标题下,点 Cost Management Metrics Operator 链接。为 Cost Management Metrics Operator 会出现 Installed Operators > Operator Details 窗口。
  2. Details 窗口中,点击 + Create Instance
  3. 此时 会出现 Cost Management Metrics Operator > Create CostManagementMetricsConfig 窗口。
  4. YAML 视图 单选按钮查看并修改 YAML 配置文件的内容。
  5. 为 Cost Management Metrics Operator 创建新的成本管理实例时,在 YAML 配置文件中进行以下修改。
  6. 在 YAML 文件中找到以下两行。

        create_source: false
        name: INSERT-SOURCE-NAME
    1. false 更 改为 true
    2. 将 INSERT-SOURCE-NAME 改为您的源的新名称。

      示例

          create_source: true
          name: my-cost-source

  7. Create 按钮。这些操作为成本管理创建新源,它将出现在 cloud.redhat.com 成本管理应用程序中。

3.4. 替换之前的 Operator 实例

如果要将之前的成本管理 Operator 替换为 Cost Management Metrics Operator,请在 YAML 配置文件中正确配置了已有的成本管理源。

重要

当您将之前的成本管理 Operator 替换为 Cost Management Metrics Operator 且您想要使用现有源时,您必须确定 YAML 文件中的 名称: INSERT-SOURCE-NAME 与您的现有源匹配。

先决条件

  • 使用集群管理员权限登录到 OpenShift Container Platform web 控制台。
  • 您可以访问 cloud.redhat.com 并查看现有的成本管理源。

流程

  1. 在安装的 Operator 列表中的 Name 标题下,点 Cost Management Metrics Operator 链接。为 Cost Management Metrics Operator 会出现 Installed Operators > Operator Details 窗口。
  2. Details 窗口中,点击 + Create Instance
  3. 此时 会出现 Cost Management Metrics Operator > Create CostManagementMetricsConfig 窗口。
  4. YAML 视图 单选按钮查看并修改 CostManagementMetricsConfig YAML 文件 内容。
  5. 打开 cloud.redhat.com 并使用您的机构管理员帐户登录。
  6. 点击 configuration gear (Settings)。
  7. 点击 Sources 选项卡显示现有源。
  8. 选择一个现有的成本管理源并复制它的名称。
  9. 在 CostManagementMetricsConfig YAML 文件中, 将 INSERT-SOURCE-NAME 替换为您从机构成本管理源列表中复制的源名称。

        create_source: false
        name: INSERT-SOURCE-NAME    <<<< replace this string

    create_source: false 不会改变,因为您与现有源匹配,而不是创建新源。

  10. Create 按钮。不需要进一步操作来配置 Operator 实例。

3.5. 删除之前的成本 Operator

安装成本 management -metrics-operator 后,请卸载之前的成本管理 Operator。

为了避免成本管理数据的缺陷,您可以在删除前面的 operator 前等待 24 到 48 小时,同时验证 costmanagement- metrics-operator 是否提供了成本管理报告。

注意

如果您错误地删除 Cost Management Metrics Operator,请重新安装它。

先决条件

  • 已安装之前的成本管理 Operator。
  • 已安装 Cost Management Metrics Operator
  • 使用集群管理员权限登录到 OpenShift Container Platform web 控制台。
  • 您可以在 Installed Operators 选项卡中查看 Operator。

流程

  1. 在 Installed Operators 列表中,选择您要删除的 Operator。
  2. 点击该行 more options 中的 Options 菜单。
  3. Uninstall Operator 选项。确认要删除 Operator 的操作。
  4. 在 OpenShift Container Platform web 控制台中,点击 Administration > Custom Resource Definitions 选项卡。
  5. 在显示自定义资源定义(CRD)的窗口中,找到用于 成本-mgmt-operator 的 CostManagementData CRD 或 KokuMetricsConfig CRD 用于 koku -metrics-operator
  6. 对于每个 CRD,点 Options 菜单 more optionsDelete Custom Resource Definition。确认 delete 操作。
  7. 删除这些 CRD 时,以前的 Operator 会被完全卸载。
注意

安装 Cost Management Metrics Operator 时, CostManagementMetricsConfig CRD 出现在 Administration > Custom Resource Definitions 列表中。

3.6. 验证成本操作员

查看配置 YAML 文件以验证成本管理 Operator 是否正常工作。

先决条件

  • 您可以访问 OpenShift Container Platform Web 控制台。
  • 您可以找到并查看 Installed Operators 选项卡。

流程

  1. Installed Operators 选项卡。
  2. 在已安装的 operator 列表中,点击 Cost Management Metrics Operator 条目。
  3. 打开 metrics operator 窗口时,点 CostManagementMetricsConfig 选项卡来显示配置文件名称列表。
  4. 在名称列表中点击配置文件。在默认安装中,文件名是 costmanagementmetricscfg-sample
  5. 打开 Details 窗口时,点击 YAML 标签页,并以视觉化方式检查以下项目。

    1. Prometheus 配置和连接是 true

        prometheus:
          last_query_start_time: '2021-01-25T20:59:06Z'
          last_query_success_time: '2021-01-25T20:59:06Z'
          prometheus_configured: true
          prometheus_connected: true
          service_address: 'https://thanos-querier.openshift-monitoring.svc:9091'
          skip_tls_verification: false
    2. 上传信息显示入口路径、成功上传和时间以及接受的状态。

       upload:
          ingress_path: /api/ingress/v1/upload
          last_successful_upload_time: '2021-01-25T20:59:35Z'
          last_upload_status: 202 Accepted
          last_upload_time: '2021-01-25T20:59:35Z'
          upload: true
          upload_cycle: 360
          upload_wait: 28
          validate_cert: true

3.7. 为成本 Operator 配置基本身份验证

您可以配置成本 Operator 来使用基本身份验证。默认情况下,成本 Operator 使用令牌身份验证。

配置基本身份验证时需要两个步骤。

3.7.1. 为基本身份验证创建 secret 键/值对

先决条件

  • 使用集群管理员权限登录到 OpenShift Container Platform web 控制台。
  • Cost Management Metrics Operator 会 出现在 Installed Operators 选项卡中。
  • 您有 cloud.redhat.com 帐户的用户名和密码。

流程

此流程描述了使用 OpenShift Container Platform Web 控制台设置基本身份验证。

  1. 在 OpenShift Container Platform web 控制台中,点 Workloads > Secrets 选项卡。
  2. Secrets 窗口中,从下拉列表 中选择 Project:costmanagement-metrics-operator
  3. Create > Key/Value Secret 选择。
  4. Create Key/Value Secret 窗口中输入以下信息以创建新 secret,该 secret 包含用户名密钥和密码键以及每个键的值。

    1. Secret Name 字段 中输入 secret 的名称。

      Secret 名称示例

      basic-auth-secret

    2. Key 字段 中输入 用户名。这是密钥对的第一个密钥对。

      用户名的键名称示例

      username

    3. 在 username 键的 Value 字段中,输入您授权的 cloud.redhat.com 用户帐户的实际用户名。

      用户名的键值示例

      RedHatUser

    4. 点击 Add Key/Value 链接来添加所需的密码密钥名称和值。
    5. Key 字段 中输入 密码。这是密钥对的第二个密钥。

      密码的密钥名称示例

      password

    6. 在 password 密钥的 Value 字段中,输入授权 cloud.redhat.com 用户帐户的实际密码。

      密码的键值示例

      my.User!password

    7. Create 按钮完成创建基本授权 secret。
    8. Create 按钮后,您可以验证 secret 的密钥信息详情。

      注意

      不要 将 secret 添加到工作负载中。

3.7.2. 修改 YAML 文件

修改 Cost Management Metrics Operator API YAML 文件,以使用 secret 用户名和密码键/值对的基本身份验证。

先决条件

  • 使用集群管理员权限登录到 OpenShift Container Platform web 控制台。
  • 您为用户名和密码的键/值对创建了 secret 名称。
  • 已安装 Cost Management Metrics Operator。

流程

  1. Operators > Installed Operators 选项卡。
  2. 找到包含 Cost Management Metrics Operator 的行,并点击 Provided APIs 标题下的 Cost Management Metrics Operator 链接。
  3. CostManagementMetricsConfig 窗口出现时,点 Name 栏中列出的配置文件。

    默认名称是 costmanagementmetricscfg-sample

  4. 当出现 costmanagementmetricscfg-sample 窗口时,点击 YAML 选项卡打开编辑并查看窗口。
  5. 在 YAML 视图中找到以下行。

      authentication:
        type: token
  6. type: token 改为 type: basic
  7. secret_name 插入一行。输入 secret_name 的值,这是您之前创建的名称。

    示例

      authentication:
        secret_name: basic-auth-secret
        type: basic

  8. Save 按钮。此时会出现确认信息。

3.8. 手动创建 Openshift Container Platform 源

如果按照前面的步骤操作,则会自动创建 OpenShift Container Platform 源。但是,在有些情况下,当必须在 cloud.redhat.com 上手动创建 OpenShift Container Platform 源时,会安装受限的网络。

先决条件

  • 安装了 OpenShift Container Platform 集群。
  • 具有机构管理员权利的红帽帐户用户。
  • 已登陆到 OpenShift Container Platform Web 控制台。

流程

  1. 从成本管理中点击 configuration gear (Settings)
  2. Sources
  3. Red Hat Sources
  4. Add source 打开对话框。
  5. 输入源的名称并点 Next
  6. 选择 Red Hat OpenShift Container Platform 标题作为源类型。
  7. 选择 成本管理 作为应用程序,然后点 Next
  8. 从 OpenShift Container Platform web 控制台 Home > Overview 选项卡中复制 Cluster Identifier,点 Next
  9. 检查详情并点击 Add 创建源。

3.9. 添加受限网络源

您可以在无法访问互联网的受限网络上安装 OpenShift Container Platform。

将在受限网络中运行的 OpenShift Container Platform 集群添加为成本管理源的步骤如下:

  1. Operator Lifecycle Manager 被配置为安装和运行本地源。
  2. costmanagement -metrics-operator 被配置为使用持久性卷声明(PVC)在本地存储成本报告 CSV 文件。
  3. 存储在 PVC 中的成本报告会下载到一个工作站。
  4. 手动创建 OpenShift Container Platform 源。
  5. 成本报告会从您的工作站上传到 cloud.redhat.com

3.9.1. 在受限网络中安装成本管理 Operator

对于在受限网络中安装的 OpenShift Container Platform 集群,Operator Lifecycle Manager(OLM)默认无法远程访问成本 management -metrics-operator,因为这些远程源需要足够的互联网连接。因此,OLM 必须配置为安装和运行本地源。

先决条件

  • 安装了 OpenShift Container Platform 集群。
  • 没有网络访问限制的工作站
  • 使用集群管理员权限登录到 OpenShift Container Platform web 控制台。

流程

  1. 完成以下 OpenShift Container Platform 流程以创建成本 management- metrics-operator 的本地 镜像:在 受限网络中使用 Operator Lifecycle Manager

    注意

    costmanagement -metrics-operatorregistry. redhat.io/redhat/redhat-operator-index:v4.7 索引的 redhat- operators 目录中找到。

    红帽建议在推送到已镜像的 registry 前,从索引中修剪不需要的对象。确保您保留 costmanagement- metrics-operator 软件包

  2. 登录到 OpenShift Container Platform Web 控制台,点 Operators > OperatorHub
  3. 搜索并找到 Cost Management Metrics Operator
  4. Cost Management Metrics Operator 标题。
  5. 当出现 Install Operator 窗口时,您必须为安装选择 costmanagement-metrics-operator 命名空间。如果命名空间尚不存在,则会为您创建命名空间。
  6. Install

验证步骤

  • 短等待后, Cost Management Metrics Operator 会出现在 Project( 所有项目或 Project: costmanagement -metrics-operator)下的 Installed Operators 选项卡中。

其他资源

3.9.2. 在受限网络中配置 Cost Operator

安装成本 management-metrics-operator 后,您必须将其配置为在受限网络中运行。

先决条件

  • 已安装 costmanagement-metrics-operator
  • 使用集群管理员权限登录到 OpenShift Container Platform web 控制台。

流程

  1. 在 OpenShift Container Platform web 控制台中,选择 Operators > Installed Operators > costmanagement-metrics-operator > CostManagementMetricsConfig > Create Instance
  2. 指定所需的存储。如果没有指定,Operator 将创建一个名为 costmanagement- metrics-operator-data 的 默认持久性卷声明,带有 10Gi 存储。

    注意

    要将 costmanagement -metrics-operator 配置为使用或创建不同的 PVC,在 YAML 视图 中更新 volume_claim_template 配置。

  3. 选择 YAML view
  4. 指定使用 max_reports_to_store 存储的最大报告数量 ,使用 upload_cycle 以分钟为单位指定报告生成时间 之间的时间。

        packaging:
          max_reports_to_store: 30
          max_size_MB: 100
        upload:
          upload_cycle: 360
    重要

    costmanagement -metrics-operator 默认会创建一个每├ 分钟 的报告。因此,默认的 30 个报告值和↑ 分钟 为您提供了 7.5 天 报告。

    指定总数后生成的任何报告都将替换存储中最旧的报告。在丢失前,请确保从 PVC 下载所生成的报告。

  5. upload_toggle 设置为 false

        upload:
          upload_cycle: 360
          upload_toggle: false
  6. source 部分中的配置替换为空括号。

        source: {}
  7. 身份验证 部分中的配置替换为空括号。

        authentication: {}
  8. 点击 Create

验证步骤

  1. 选择您 创建 的 CostManagementMetricsConfig。
  2. 选择 YAML view
  3. 验证在 打包 部分创建了报告。

        packaging:
          last_successful_packaging_time: `current date and time`
          max_reports_to_store: 30
          max_size_MB: 100
          number_of_reports_stored: 1
          packaged_files:
            - >-
                /tmp/costmanagement-metrics-operator-reports/upload/YYYYMMDDTHHMMSS-cost-mgmt.tar.gz
    注意

    costmanagement-metrics-operator 将在配置后生成初始报告。生成的报告将列在 packaged _files 下

3.9.3. 下载成本报告

如果将 成本 management-metrics-operator 配置为在受限网络中运行,请将 PVC 中报告复制到临时存储到没有网络访问权限限制的工作站中,以上传到 cloud.redhat.com

注意

默认配置将保存一周报告。因此,在本地下载报告,并将它们上传到 cloud.redhat.com 每周,以防止指标数据丢失。

先决条件

  • 没有网络访问限制的工作站
  • costmanagement-metrics-operator 在 PVC 中报告。

流程

  1. 使用与包含报告数据的 PVC 匹配的 claimName 创建以下 pod:

    kind: Pod
    apiVersion: v1
    metadata:
      name: volume-shell
      namespace: costmanagement-metrics-operator
    spec:
      volumes:
      - name: costmanagement-metrics-operator-reports
        persistentVolumeClaim:
          claimName: costmanagement-metrics-operator-data
      containers:
      - name: volume-shell
        image: busybox
        command: ['sleep', '3600']
        volumeMounts:
        - name: costmanagement-metrics-operator-reports
          mountPath: /tmp/costmanagement-metrics-operator-reports
  2. 使用 rsync 将 PVC 中的所有文件复制到本地文件夹。

    $ oc rsync volume-shell:/tmp/costmanagement-metrics-operator-reports/upload local/path/to/save/folder
  3. 确认已经复制了文件。
  4. 连接到 pod 并删除上传文件夹的内容。

    $ oc rsh volume-shell
    $ rm /tmp/costmanagement-metrics-operator-reports/upload/*
  5. (可选)删除用于连接 PVC 的 Pod。

    $ oc delete -f volume-shell.yaml

其他资源

3.9.4. 将成本报告上传到 cloud.redhat.com

您必须手动将本地存储的成本报告从受限网络上传到 cloud.redhat.com

注意

默认配置将保存一周报告。因此,在本地下载报告,并将它们上传到 cloud.redhat.com 每周,以防止指标数据丢失。

先决条件

流程

  • 将报告上传到 cloud.redhat.com,将 USERNAME 和 PASSWORD 替换为您的 cloud.redhat.com 登录凭证,并将您的 FILE_NAME 上传:

    $ curl -vvvv -F "file=@FILE_NAME.tar.gz;type=application/vnd.redhat.hccm.tar+tgz"  https://cloud.redhat.com/api/ingress/v1/upload -u USERNAME:PASS

验证步骤

  1. cloud.redhat.com/cost-management 中点 OpenShift
  2. 在 OpenShift 详情页面中验证集群的 OpenShift 用量数据。

第 4 章 将 Amazon Web Services(AWS)源添加到成本管理

要将 AWS 帐户添加到成本管理,您必须配置 AWS 帐户以提供指标,然后从成本管理用户界面中添加 AWS 帐户作为源。

注意

您必须有一个具有机构管理员权利的红帽帐户用户,然后才能将源添加到成本管理中。

当您将 AWS 帐户添加为源时,这会创建一个只读连接到 AWS 的连接,以便每小时收集成本管理信息,但不会对 AWS 帐户进行任何更改。

在将 AWS 帐户添加到成本管理中作为数据源之前,您必须在 AWS 帐户上配置以下服务,以允许对指标进行成本管理访问:

  1. 用于存储成本管理的成本和使用数据的 S3 存储桶
  2. 一个 Identity Access Management(IAM)策略和角色,用于处理成本和使用数据

由于您可以在 AWS 控制台中完成以下步骤,以及成本管理用户界面中的一些步骤,请让两个应用程序在 Web 浏览器中打开。

从设置区域添加 AWS 源到成本管理 https://cloud.redhat.com/settings/sources/

注意

因为非红帽产品和文档可以在不通知的情况下有所变化,因此在发布时配置本指南中提供的第三方源的说明是常规的和正确的。有关最新和准确的信息,请参阅 AWS 文档

4.1. 创建用于报告的 S3 存储桶

成本管理需要一个 Amazon S3 存储桶,它配置了存储账单报告的权限。

登录到 AWS 帐户以开始配置成本和使用量报告:

  1. 在 AWS S3 控制台中,创建新的 S3 存储桶或使用现有存储桶。如果要配置新的 S3 存储桶,请使用默认设置。
  2. 在 AWS Billing 控制台中,创建一个成本和使用量报告,报告将传送到 S3 存储桶。指定以下值(并接受任何其他值的默认值):

    • 报告名称: <any-name> (注意此名称,您稍后会使用它)
    • 其他报告详情:包含资源 ID
    • S3 bucket: <之前配置的 S3 存储桶
    • 时间粒度:正常
    • 启用报告数据集成: Amazon Redshift、Amazon QuickSight(不要启用 Amazon Athena 报告数据集成)
    • 压缩类型: GZIP
    • 报告路径前缀: cost

      注意

      有关配置的详情,请参阅 AWS Billing 和成本管理 文档。

  3. cloud.redhat.com 平台中,打开 Sources 菜单(https://cloud.redhat.com/settings/sources/)开始将 AWS 源添加到成本管理中:

    1. 导航到 Sources 并点击 Add a source 打开 Sources 向导。
    2. 为源输入一个名称并点 Next
    3. 选择 成本管理 作为应用程序 ,Amazon Web Services(AWS) 作为源类型。点 Next
    4. 粘贴 S3 存储桶的名称并点击 Next

4.2. 激活 AWS 标签以进行成本管理

要使用标签在成本管理应用程序中组织 AWS 资源,请在 AWS 中激活标签,以便自动导入它们。

流程

  1. 在 AWS Billing 控制台中:

    1. 打开 成本分配标签 部分。
    2. 选择您要在成本管理应用程序中使用的标签,然后点击 Activate
  2. cloud.redhat.com Sources 向导中,点 Next 移至下一屏幕。

4.3. 为成本和使用情况消耗启用最小帐户访问

要在 Web 界面和 API 中提供数据,成本管理需要使用 AWS 生成的成本和使用量报告。要进行成本管理以获取这些数据,请创建一个 IAM 策略和角色来使用成本管理。这个配置提供对存储信息的访问,其他任何配置都不提供。

流程

  1. 在 AWS Identity and Access Management(IAM)控制台中,为之前配置的 S3 存储桶创建新的 IAM 策略。

    1. 选择 JSON 选项卡,并在 JSON 策略文本框中粘贴以下内容:

      {
        "Version": "2012-10-17",
        "Statement": [
          {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
              "s3:Get*",
              "s3:List*"
            ],
              "Resource": [
              "arn:aws:s3:::bucket_name",
              "arn:aws:s3:::bucket_name/*"
            ]
          },
      
          {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
              "s3:HeadBucket",
              "cur:DescribeReportDefinitions"
            ],
            "Resource": "*"
          }
        ]
      }
  1. 为策略提供名称并完成策略的创建。保持 AWS IAM 控制台打开,因为您需要它进行下一步。

    1. cloud.redhat.com Sources 向导中,点 Next 移至下一屏幕。
    2. 在 AWS IAM 控制台中,创建新的 IAM 角色:
  2. 对于可信实体的类型,请选择 Another AWS 帐户
  3. 输入 1129173575009 作为帐户 ID,以便为成本管理应用程序提供对 AWS 帐户成本数据的读取访问权限。
  4. 附加您刚才配置的 IAM 策略。
  5. 输入角色名称(及描述(如果需要)并完成策略创建。

    1. cloud.redhat.com Sources 向导中,点 Next 移至下一屏幕。
    2. 在 Roles 下的 AWS IAM 控制台中,打开您刚才创建的角色的概述屏幕,并复制角色 ARN(以 arn:aws:开头的字符串)。
    3. cloud.redhat.com Sources 向导中,粘贴您的 Role ARN 并点 Next
    4. 检查详情并点击 Finish 将 AWS 帐户添加到成本管理中。

成本管理将开始从 AWS 帐户和任何链接的 AWS 帐户收集成本和使用情况数据。

在成本管理仪表板(https://cloud.redhat.com/cost-management/)中显示前,这些数据可能需要几天时间才会填充。

4.3.1. 为成本和使用情况消耗启用额外的帐户访问

成本管理可以显示可能有用的其他数据。例如:

  • 包括 Action iam:ListAccountAliases 来 显示 AWS 帐户别名,而不是成本管理中的帐户号码。
  • 包括 Actions organization:List*organizations:Describe* 以获取 AWS 成员帐户的显示名称,如果使用合并的账单而不是帐户 ID。

以下配置提供其他存储信息的访问。

流程

  1. 在 AWS Identity and Access Management(IAM)控制台中,为之前配置的 S3 存储桶创建新的 IAM 策略。
  2. 选择 JSON 选项卡,并在 JSON 策略文本框中粘贴以下内容:

    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Sid": "VisualEditor0",
          "Effect": "Allow",
          "Action": [
            "s3:Get*",
            "s3:List*"
          ],
          "Resource": [
            "arn:aws:s3:::bucket",
            "arn:aws:s3:::bucket/*"
          ]
        },
        {
          "Sid": "VisualEditor1",
          "Effect": "Allow",
          "Action": [
            "iam:ListAccountAliases",
            "s3:HeadBucket",
            "cur:DescribeReportDefinitions",
            "organizations:List*",
            "organizations:Describe*"
          ],
          "Resource": "*"
        }
      ]
    }

    配置步骤的其余部分与中所示相同 第 4.3 节 “为成本和使用情况消耗启用最小帐户访问”

您已完成了将 AWS 帐户添加为源。

第 5 章 在成本管理中添加 Microsoft Azure 源

配置 Microsoft Azure 帐户以允许成本管理访问。

将 Azure 帐户配置为作为成本管理源需要:

  1. 创建存储帐户和资源组
  2. 配置存储帐户 Contributor 和 Reader 角色以访问
  3. 调度每日成本导出
注意

因为非红帽产品和文档可以在不通知的情况下有所变化,因此在发布时配置本指南中提供的第三方源的说明是常规的和正确的。如需最新和准确的信息,请参阅 Microsoft Azure 文档

从 https://cloud.redhat.com/settings/sources/ 添加 Azure 源到成本管理 https://cloud.redhat.com/settings/sources/

5.1. 创建 Azure 资源组和存储帐户

成本导出数据被写入一个存储帐户,该帐户存在于资源组中。资源组必须可以被成本管理访问,以便读取 Azure 成本数据。

在 Azure 中创建新存储帐户,以包含成本数据和成本管理指标。这需要一个资源组 ; 红帽建议为该存储帐户创建一个专用资源组。

注意

您必须有一个具有机构管理员权利的红帽帐户用户,然后才能将源添加到成本管理中。

  1. cloud.redhat.com 平台中,打开 Sources 菜单(https://cloud.redhat.com/settings/sources/)开始将 Azure 源添加到成本管理中:

    1. 导航到 Sources 并点击 Add a source 打开 Sources 向导。
    2. 为源输入一个名称并点 Next
    3. 选择 成本管理 作为应用程序, Microsoft Azure 作为源类型。点 Next
  2. 使用 See Azure 文档中的说明在 Azure 帐户中 创建资源 组和 存储帐户

记录资源组和存储帐户。在后续步骤中需要它们。

  1. cloud.redhat.com Sources 向导中,输入 Resource 组名称存储帐户名称 并点击 Next

5.2. 配置 Azure 角色

红帽建议配置专用凭证,以授予对 Azure 成本数据的只读访问权限。在 Azure 中配置 Storage Account Contributor 和 Reader 角色,以提供对成本管理的访问。

  1. 在 Azure Cloud Shell 中,运行以下命令来获取您的订阅 ID:

    $ az account show --query "{subscription_id: id }"
  2. cloud.redhat.com Sources 向导中,输入您的 订阅 ID。点 Next 移至下一屏幕。
  3. 在 Azure Cloud Shell 中,运行以下命令来创建成本管理 Storage Account Contributor 角色,并获取您的租户 ID、客户端(应用程序)ID 和客户端 secret:

    $ az ad sp create-for-rbac -n "CostManagement" --role "Storage Account Contributor" --query '{"tenant": tenant, "client_id": appId, "secret": password}'
  4. cloud.redhat.com Sources 向导中,输入 Azure 租户 ID客户端 ID客户端 Secret
  5. 在 Azure Cloud Shell 中,运行以下命令,使用您的订阅 ID 创建成本管理 Reader 角色。复制 cloud.redhat.com Sources 向导的完整命令,该命令会自动将之前获取的 Azure 订阅 ID 替换为 <SubscriptionID>:

    $ az role assignment create --role "Cost Management Reader" --assignee http://CostManagement --subscription <SubscriptionID>
  6. Next

5.3. 配置每日 Azure 数据导出调度

创建重复的任务,将每天自动导出成本数据到 Azure 存储帐户,其中的成本管理将检索数据。

  1. 在 Azure 中,添加新导出,如 Azure 文章创建和管理导出的数据 中所述。

    • 对于 出口类型,选择 Daily export of billing-period- date 成本。
    • 对于 Storage account,请选择之前创建的帐户。
    • 为导出的容器名称和目录路径输入任何值。这些值在存储报告文件的存储帐户中提供树结构。
    • Run 现在 开始将数据导出到 Azure 存储容器。
  2. cloud.redhat.com Sources 向导中,在您创建导出调度后点 Next,并查看源详情。
  3. Finish 完成将 Azure 源添加到成本管理中。

创建调度后,成本管理将开始轮询 Azure 以获取成本数据,这些数据会出现在成本管理仪表板中(https://cloud.redhat.com/cost-management/)。

第 6 章 在成本管理中添加 Google Cloud 源

要将 Google Cloud 帐户添加到成本管理中,您必须将 Google Cloud 配置为提供指标,然后将 Google Cloud 帐户作为源添加到 cloud.redhat.com 用户界面中。

注意

您必须有一个具有机构管理员或 Sources Administrator 权限的红帽帐户用户,然后才能将源添加到成本管理中。

在将 Google Cloud 帐户作为数据源添加到成本管理之前,您必须在 Google Cloud 帐户上配置以下服务,以允许对指标进行成本管理访问:

  • 成本管理 Google Cloud 项目。
  • 使用正确角色为服务帐户成员添加账单,将数据导出到 cloud.redhat.com
  • BigQuery 数据集以包含成本数据。
  • 将成本数据发送到 BigQuery 数据集的账单导出。

由于将在 Google Cloud 控制台中完成以下步骤,以及成本管理用户界面的一些步骤,请让两个应用程序在 web 浏览器中打开。

将 Google Cloud 源添加到从设置区域 https://cloud.redhat.com/settings/sources/ 的成本管理中 https://cloud.redhat.com/settings/sources/

注意

因为非红帽产品和文档可以在不通知的情况下有所变化,因此在发布时配置本指南中提供的第三方源的说明是常规的和正确的。如需最新和准确的信息,请参阅 Google Cloud Platform 文档

6.1. 创建 Google Cloud 项目

强烈建议您创建新的 Google Cloud 项目,以收集成本报告并将其发送到 cloud.redhat.com。此流程概述了从 Google Cloud Console 创建并命名新项目所需的步骤。

先决条件

  • 使用 resourcemanager .projects.create 权限访问 Google Cloud Console

流程

  1. 导航到 IAM & Admin创建一个项目Google Cloud Console 中
  2. 在出现的 新页面中输入 Project 名称,然后选择您的账单帐户。
  3. 选择 Organization
  4. Location 框中输入父机构
  5. Create

验证步骤

  1. 导航到 Google Cloud Console Dashboard
  2. 验证项目是否位于顶菜单栏中。

其他资源

6.2. 创建 Google Cloud Identity and Access Management 角色

一个用于成本管理的自定义 Identity and Access Management(IAM)角色可以访问启用 Google Cloud Platform 源所需的特定成本相关资源,并禁止对其他资源的访问。

先决条件

  • 使用以下命令访问 Google Cloud Console:

    • resourcemanager.projects.get
    • resourcemanager.projects.getIamPolicy
    • resourcemanager.projects.setIamPolicy
  • Google Cloud 项目

流程

  1. 导航到 IAM & Admin角色Google Cloud Console 中
  2. 从上面菜单栏的下拉菜单中选择成本管理项目。
  3. + Create role
  4. 输入角色的 TitleDescriptionID
  5. + ADD PERMISSIONS
  6. 使用 Enter 属性名称或 value 字段搜索并选择这四个权限用于自定义角色:

    • bigquery.jobs.create
    • bigquery.tables.getData
    • bigquery.tables.get
    • bigquery.tables.list
  7. ADD
  8. CREATE

验证步骤

  1. 导航到 IAM & Admin角色.
  2. 点您创建的自定义角色的标题。
  3. 验证角色有这四个分配的权限:

    • bigquery.jobs.create
    • bigquery.tables.getData
    • bigquery.tables.get
    • bigquery.tables.list

其他资源

6.3. 将服务帐户成员添加到 Google Cloud 项目

您需要在您的项目中创建一个新的账单服务帐户成员,并将成本报告导出到 cloud.redhat.com

先决条件

  • 使用以下命令访问 Google Cloud Console:

    • resourcemanager.projects.get
    • resourcemanager.projects.getIamPolicy
    • resourcemanager.projects.setIamPolicy
  • Google Cloud 项目
  • 成本管理身份和访问管理(IAM) 角色

流程

  1. 导航到 IAM & AdminIAMGoogle Cloud Console 中
  2. 从上面菜单栏的下拉菜单中选择成本管理项目。
  3. 点击页面顶部的 ADD
  4. 将这个值粘贴到 新成员字 段:

    billing-export@red-hat-cost-management.iam.gserviceaccount.com

  5. 选择成本管理 IAM 角色。
  6. 点击 SAVE

验证步骤

  1. 导航到 IAM & AdminIAM.
  2. 使用正确的角色验证新成员是否存在。

其他资源

6.4. 创建 Google Cloud BigQuery 数据集

创建一个 BigQuery 数据集来收集并存储成本管理账单数据。

先决条件

  • 使用 bigquery.datasets .create 权限访问 Google Cloud Console
  • Google Cloud 项目

流程

  1. 导航到 大数据BigQueryGoogle Cloud Console 中
  2. Explorer 面板中选择成本管理项目。
  3. CREATE DATASET
  4. 在 Dataset ID 字段中输入数据集 的名称。
  5. CREATE DATASET

验证步骤

  1. 选择您在 Explorer 面板中创建的成本管理项目。
  2. 验证您创建的 dataset 在成本管理项目下嵌套。

6.5. 将 Google Cloud 账单数据导出到 BigQuery

启用向 BigQuery 导出账单功能,会自动将 Google Cloud 账单数据(如使用量、成本估算和定价数据)发送到成本管理 BigQuery 数据集。

先决条件

流程

  1. 导航到 账单导出账单Google Cloud Console 中
  2. 点 BIGQUERY EXPORT 选项卡。
  3. Daily cost details 部分点 EDIT SETTINGS。
  4. 选择成本管理 项目 以及您 在下拉菜单中创建的导出数据集
  5. SAVE

验证步骤

  1. Daily cost details 部分验证一个带有 Enabled 的绿色复选框,其带有正确的 项目名称和 Dataset 名称

6.5.1. 查看 BigQuery 中的账单表

您可能需要查看收集并发送到成本管理的指标。这也有助于对成本管理中的不正确或缺失的数据进行故障排除。

注意

Google 可能需要几小时时间才能将账单数据导出到您的 BigQuery 数据集。

先决条件

  • 使用 bigquery.dataViewer 角色访问 Google Cloud 控制台

流程

  1. 导航到 大数据BigQueryGoogle Cloud Console 中
  2. Explorer 面板中选择成本管理项目。
  3. 在成本管理数据集下 ,点 gcp_billing_export_v1_xxxxxx_xxxxxx_ xxxxxxx 表。
  4. Preview 选项卡查看指标。

6.6. 将 Google Cloud 帐户添加为源

使用前面步骤中的信息,您可以添加 Google Cloud 帐户作为源。添加 Google Cloud 源后,成本管理应用程序会从 Google Cloud 帐户中处理成本和使用情况数据,并使其可以被查看。

先决条件

流程

  1. cloud.redhat.com,点击 configuration gear (Settings)
  2. Sources
  3. Cloud sources 选项卡中的 Add source
  4. 输入源名称并点 Next
  5. 在对话框中,选择 Google Cloud 作为源类型, 成本管理 作为应用程序。
  6. Next
  7. 输入您的 项目 ID 并点 Next
  8. Next 验证您已创建了 Identity and Access Management(IAM)角色
  9. Next 验证您已创建新的 账单服务帐户用户 并分配了正确的角色。
  10. 输入您的 BigQuery Dataset ID 并点 Next
  11. 点击 Next 以验证您已启用了 BigQuery 账单导出
  12. 检查详情并点击 Add

验证步骤

  • Sources 页面中验证您的源是否带有 Available 状态。

    重要

    Google 可能需要几小时时间来收集并导出账单数据才能进行成本管理。同时,您会收到一个正在进行 中的配置,您的 源状态将在 Sources 页面中显示为 Unknown

表 6.1. 故障排除

问题原因补救步骤

用于项目 projectID 的不正确的 IAM 权限

账单服务帐户成员没有正确的角色或权限来管理成本。

确定账单服务帐户 具有正确 的权限。

无法在项目中查找 dataset: yourdatasetID: yourprojectID

BigQuery dataset ID 被错误地输入或者不存在。

确保 BigQuery 数据集 ID 与为成本管理创建的数据集 ID 匹配。

源状态 "Unknown " 超过 24 小时

成本管理无法在提供的 BigQuery 数据集中找到成本数据。

确保配置了您的 账单导出,且您的 BigQuery 数据集中存在您的 账单表

第 7 章 管理成本的后续步骤

添加您的基础架构和云源后,除了按源显示成本数据外,成本管理还会自动显示与在 AWS 或 Azure 上运行 OpenShift Container Platform 集群相关的 AWS 和 Azure 成本和使用情况。

在成本管理 概述 页面中,使用 视角选项查看 您的成本数据的不同视图。

使用 Details 菜单来更接近您的成本。

7.1. 为您的源配置标记

成本管理应用程序使用标签(称为 OpenShift 中的标签)跟踪云和基础架构成本,您可以对它进行重新定义,以过滤资源及属性。您可以通过成本管理的标签来组织资源,并将成本分配给云基础架构的不同部分。

重要

标签和标签只能在源中直接配置。您不能编辑成本管理应用程序中的标签和标签。

请参阅使用标记管理成本数据, 以了解更多相关信息:

  • 规划标记策略以整理您的成本数据视图
  • 了解成本管理如何关联标签
  • 在源上配置标签和标签

7.2. 配置成本模型以准确报告成本

现在,您已将源配置为收集成本和使用情况数据,您可以配置成本模型来将价格与指标和使用量关联,并微调运行云的成本。

成本模型是一个框架,用于使用原始成本和指标来定义成本管理中存储的成本的计算。成本模型生成的成本可以记录、分类并分配给特定客户、业务单元或项目。

成本管理的 Cost Models 方面,您可以:

  • 将您的成本分类为基础架构或附加成本
  • 捕获 OpenShift 节点和集群的每月成本
  • 应用标记来考虑额外的支持成本
  • 了解如何在使用成本模型中配置 成本模型

法律通告

Copyright © 2021 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.