连接 Google Cloud

概述

本指南将引导您完成将 Google Cloud Platform 连接至 IBMCloudability 的操作流程。 Cloudability 支持

  • GCP 标准计费

  • GCP 详细账单。

连接后,您将能够访问 Cloudability 中的 FinOps 功能。

注意: 为确保完全兼容和支持,请按照说明中的连接步骤操作。 不支持自定义配置。 如有疑问,请联系 IBM 客服

先决条件

  • Cloudability 使用 IAM 创建和管理自定义角色

  • GCP 中应具备 IAM 权限,以便创建自定义角色

  • Cloudability 使用这些自定义角色,其权限专门用于读取账单、承诺和定价数据。

    • CloudabilityRole_Billing – 用于计费账户

    • CloudabilityRole_Buckets - 用于访问 GCS 存储桶
    • CloudabilityRole_AdvancedFeatures – 用于项目

  • 应具备在 GCP 中创建 GCS 存储桶的权限。

  • 需要以下权限

    • bigquery.tables.export (从 导出表格数据) BigQuery

    • storage.buckets.getIamPolicy

    • storage.buckets.get

    • storage.buckets.list

    • storage.multipartUploads.abort

    • storage.multipartUploads.创建

    • storage.multipartUploads.列表

    • storage.multipartUploads.listParts

    • storage.objects.create

    • storage.objects.delete

    • storage.objects.get

    • storage.objects.list

    • storage.objects.update

  • 要在云控制台中成功运行我们的脚本,您的 gcloud 用户需要在项目级别获得以下 IAM 权限:

    • iam.roles.create

    • resourcemanager.projects.setIamPolicy

    • resourcemanager.projects.getIamPolicy

  • 这使客户能够完全掌控并清晰了解其 GCP 项目中任何承担该角色的实体所采取的所有行动。

  • 管理员访问 Cloudability 供应商凭证

  • 访问并启用 Google Cloud Resource Manager API 的权限

入门:

Cloudability 的 GCP 认证流程包含两个主要步骤:

  • GCP 账单账户认证

  • GCP 项目认证(高级功能)

GCP 账单账户认证流程包含若干步骤,您需在不同阶段分别于 GCP 门户网站和 Cloudability 网站执行相应操作。

在此过程中, Cloudability 将使用您的计费表ID生成包含gcloud IAM命令的脚本,该脚本需在 GCP 控制台中运行。

  • 检查相应项目的 IAM 部分,以确定您是否拥有这些权限。
  • 启用 Google Cloud Resource Manager API
  • Cloudability 使用 Google 的云 Resource Manager API来测试是否已授予支持可用功能所需的权限。
  • Google 的云 Resource Manager API为您提供诸多优势,且完全免费。 您可以在 Resource Manager 上阅读更多相关内容。
  • 有关通过 Resource Manager 提供的API列表,请参  Cloud Resource Manager API 。
注:Cloudability 依赖 projects.testIamPermissions API 来检测是否已授予特定权限,以支持计费和高级功能。 如需了解更多信息, 请参阅  方法: projects.testIamPermissions  。

为 GCP 计费账户进行资质认证

步骤 1 - GCP 门户 – 启用 BigQuery 导出功能及表 ID

  • 在 GCP 控制台中 进入「API与服务 > 库」部分,搜索 「Cloud Resource Manager API」。

  • 在 Cloud Resource Manager API 页面上, 选择 ENABLE。

  • 请确保已勾选“启用API”。

在 Google 控制台中,在搜索栏中输入 "账单",在显示的结果中选择 "账单账户"。

选择账单导出。

选择 "编辑设置"(根据您要设置的导出类型)。

点击“编辑设置”按钮,选择您要设置的导出类型——标准账单或详细账单。

注: 我们建议采用详细计费,因为该数据包含更多附加细节,能提供更精细的报告。

选择将存储您的计费数据(很可能是您的计费项目)的项目,然后点击数据集并选择创建新数据集。

添加数据集 ID 并单击创建数据集。

注意: 我们建议为您的数据集选择多区域位置(欧盟或美国),以便在 GCP 中追溯添加当前月和上月的计费数据。 有关详细信息和限制,请参阅 “将计费数据导出到 BigQuery

选择 "保存 "完成整个过程。

注意: 当您为一个计费账户启用导出 BigQuery 功能时。 在指定的数据集中自动为您创建一个表格。 此表称为计费表
  • GCP 标准使用成本表名称应采用此格式: gcp_billing_export_v1_<BILLING_ACCOUNT_ID>

  • GCP 详细使用成本表名称应采用此格式  gcp_billing_export_resource_v1_<BILLING_ACCOUNT_ID>  .

标准使用/详细使用成本表应包含如下图所示的以下分区细节。

注:Google 教程: 将计费数据导出到 BigQuery

启用 BigQuery 导出功能后,系统将花费数小时创建计费表,完成后您即可获取该表的表ID。

您可以在包含计费数据导出文件( BigQuery )的项目中,通过导航至 「表信息 > 表ID 」找到计费表ID。

当您为计费账户启用 BigQuery 导出功能时,必须指定一个项目和数据集,计费数据将导出至该项目和数据集。 在指定的数据集中自动为您创建一个表格。 该表称为计费表, Cloudability 的服务账户必须能够读取该表中的数据。

创建存储桶

需要一个存储桶,将 BQ 表导出的数据复制到存储桶中,然后 Cloudability 才能检索这些数据。

在 Google 控制台中工作;在搜索栏中输入 "云存储",并在显示时选择它。

单击 "创建 "创建一个 "水桶"。

输入存储桶的名称(例如:cloudability-export,然后单击创建)。

出现提示时,保留默认值并单击 "确认"。

将创建水桶。

第二步 - Cloudability – 在 Cloudability 中添加凭据详细信息

GCS标准计费

注意: 对于标准计费,我们建议使用存储桶而非通过API进行流式传输

收集完上述信息后,您可将其输入 Cloudability 以更新您的 GCP 凭证。

Cloudability 将使用此信息生成一个Shell脚本。 当该脚本从您的 Cloud Shell 在 GCP 门户中运行时,它将通过自定义角色创建并授予 Cloudability 权限,以便访问存储账户。

  • 在 Cloudability 中,导航至

  • 设置 > 供应商凭证 > 添加数据源 > GCP

  • 单击 Next

  • 选择 GCP - 将打开添加 GCP 账户面板。

  • 设置 > 供应商凭证 > Ingress > GCP

  • 单击 Next

  • 选择 GCP 标准费——添加凭证面板随即打开。

  • 输入完整的表ID,该ID由项目、数据集和表组合而成,例如: project:dataset.gcp_billing_export_v1_<BILLING_ACCOUNT_ID>

  • 输入 GCS 存储桶名称

  • 输入组织ID(推荐,有助于快速入职)

  • 点击生成安装脚本

  • 点击下载脚本

  • GCP shell脚本模板将下载至本地——请将其保存在安全位置以备后续操作,该文件需上传至 GCP 控制台

标准计费与BQ流媒体服务

  • 设置 > 供应商凭证 > 添加数据源 > GCP

  • 单击 Next

  • 选择 GCP - 将打开添加 GCP 账户面板。

  • 设置 > 供应商凭证 > Ingress > GCP

  • 单击 Next

  • 选择 GCP 标准费——添加凭证面板随即打开。

  • 输入完整的表ID,该ID由项目、数据集和表组合而成,例如: project:dataset.gcp_billing_export_v1_<BILLING_ACCOUNT_ID

  • 桶名称(可选 - 可留空)

  • 组织ID(推荐使用,有助于快速入职)

  • 点击生成安装脚本

  • 点击下载脚本

  • GCP shell脚本模板将下载至本地——请将其保存在安全位置以备后续操作,该文件需上传至 GCP 控制台

详细计费(推荐)

  • 设置 > 供应商凭证 > 添加数据源 > GCP

  • 单击 Next

  • 选择 GCP - 将打开添加 GCP 账户面板。

  • 设置 > 供应商凭证 > Ingress > GCP

  • 单击 Next

  • 选择 GCP 详细费——添加凭证面板随即打开。

  • 输入完整的表ID ,该ID由项目、数据集和表组合而成,例如: project:dataset.gcp_billing_export_resource_v1_<BILLING_ACCOUNT_ID

  • 输入 GCS存储桶名称。

  • 输入详细计费日期

    注: 此日期表示您启用详细账单导出功能的月份和年份。 如果您是第一次执行此操作,则当前月份为 YYYY-MM。
  • 组织ID (推荐使用,有助于快速入职)

  • 点击生成安装脚本

  • 点击下载脚本

  • GCP shell脚本模板将下载至本地——请将其保存在安全位置以备后续操作,该文件需上传至 GCP 控制台

步骤3 – 上传并运行 GCP shell脚本

该脚本执行两个步骤:首先在计费项目中设置自定义角色,然后将 Cloudability 的服务账户添加为项目成员,并绑定该自定义角色。 这确保了我们的服务账户只能从计费项目内的 BigQuery 表中读取数据。 我们不会在非计费项目中访问 BigQuery 数据。

对于GCS存储桶,我们遵循上述流程:通过 BigQuery 导出作业将 BigQuery 数据导出至GCS,随后将该数据拉取至 Cloudability。

1. 自定义角色的设置

该脚本首先在计费项目中创建自定义角色。 该脚本为自定义角色授予了读取计费数据所需的权限

# 示例:为 my-billing-project-123 创建计费自定义角色 # 计费项目 ID 为 my-billing-project-123 gcloud iam roles create CloudabilityRole_Billing \ --project \ my-billing-project-123 \ --title \" Cloudability 计费角色" \ --description \"允许 Cloudability 访问计费账户数据" \ --permissions \ bigquery.jobs.create,bigquery.tables.getData \ --stage =GA

2. 将服务账户添加为成员并绑定自定义角色

创建自定义角色后,脚本将添加 Cloudability 服务账户作为计费项目的成员,并将其与该自定义角色绑定。

# 示例:将 Cloudability 的服务帐户添加为 my-billing- project-123 的成员 # 计费项目 ID 为 my-billing-project-123 gcloud projects add-iam-policy-binding my-billing-project-123 \ --member serviceAccount:billing-data-service-acct@cloudability- \ --role 'projects/my-billing-project credentials.iam.gserviceaccount.com 123/roles/CloudabilityRole_Billing '

3. GCS 存储桶

若选择使用GCS存储桶的 GCP 标准计费方案或 GCP 详细计费方案,则必须配置 GCP GCS存储桶。 Cloudability 将从配置的 GCPBigQuery 表中临时将数据导出至此GCS存储桶,以便将这些数据摄入 Cloudability。 数据摄取完成后, Cloudability 将从存储桶中删除数据。

注意: 同一 GCP 付款方账户ID不能同时用于标准计费和详细计费。

运行脚本

请按照以下步骤通过云控制台内的 Cloud Shell 运行脚本。 在 Cloud Shell 的哪个位置运行脚本并不重要。

  • 激活 Cloud Shell ,选择图标,然后选择 “上传文件”。 从文件浏览器中选择下载的脚本并确认。

  • chmod +x <scriptname> 使脚本可执行

  • 接下来,在 Cloud Shell 中运行脚本:

./ script-name

注意: 在下面的命令中,请将script-name替换为实际脚本的完整名称及其扩展名。
  • 检查是否有任何错误。 例如,

  • 如果脚本运行成功,您将在 Cloud Shell 中看到与下面类似的输出:

步骤 4 – Cloudability 验证凭据

  • 选择「验证凭据」。

  • 选择刷新图标更新状态。

绿色复选标记表示该账单账户已成功认证。

注意: 您的项目不会立即显示——所有项目将在24小时内陆续出现在 Cloudability 平台上。

您已成功将您的计费账户添加至 Cloudability。 我们定期采集数据,您的账单数据将从下一个采集周期开始提供。 下一次采集时,我们还将枚举与该计费账户相关的项目。

最后,若贵机构需要添加其他 GCP 计费账户,请对每个计费账户重复此操作流程。

注意: 在设置您的 GCP 账户时,请关闭所有已应用的域名限制。 一旦完成认证程序,您就可以打开它。

GCP 项目认证(高级功能)

本节的目的是帮助您完成项目的认证过程,以启用 Cloudability 的高级功能。 如果您的组织拥有多个 GCP 项目,则必须为每个需要启用高级功能的项目重复此过程。

开始之前,请确保您已完成所有先决条件

认证您的项目:

  • 添加新的项目证书,如配置项目级证书中所述。

  • 按照 运行脚本”中的说明运行该脚本。

  • 通过批量操作熟悉 GCP 资质认证

添加新项目凭证

要为 GCP 项目启用高级功能:

  • 导航 “供应商凭证”,然后选择“ GCP ”选项卡

  • 选择 编辑”图标以打开“编辑凭据”面板。

  • 选择更新凭据。

  • 选择下载脚本

  • 如果浏览器弹出警告, 选择 保留 。

运行脚本

有关更多信息,请参阅“运行脚本”部分

如何确认成功

这可以通过批量操作或手动完成。

  • 通过用户界面手动验证:

  • 在每个项目上选择「验证凭据」

  • 选择 “详细信息”以验证项目是否具备使用高级功能所需的权限。

    s

常见问题解答

账单导出页面提供的详细信息与账单表格的 BigQuery 页面所示内容存在差异。

具体来说, BigQuery 页面上的表 ID 是使用账单项目 ID 构建的,而账单导出页面则列出账单项目名称。 ID 是唯一的,而名称则不是。

解决方案:检查先决条件。

如果项目ID、数据集或表ID出现截断该怎么办?

情境:您将完整的 GCP 计费表ID输入系统后,发现存在错误。 此外,当您编辑凭证时,会发现项目 ID、数据集或表 ID 被截断。 您可能已在计费导出页面中检索或创建了您的 GCP 计费表ID。

解决方案:您必须从 BigQuery 页面完整复制您的计费表的表ID。

[脚本] 错误:( gcloud.iam.roles.create ) 项目中的某个资源存在冲突。

背景:如果计费项目中已有角色,且角色_id为 CloudabilityRole_Billing ,则可能出现这种情况。 该错误说明脚本无法创建一个新角色(role_id CloudabilityRole_Billing ),因为已经存在一个角色。

解决方案:忽略此错误。

[脚本] 错误:( gcloud.iam.roles.create ) 先决条件失败:无法创建具有角色ID ( CloudabilityRole_Billing ) 的角色,因为该角色ID对应的角色已处于已删除状态。

背景:从计费项目中删除现有角色后运行脚本时,可能会出现这种情况,角色_id CloudabilityRole_Billing。 角色可能处于删除状态,脚本无法使用该角色 ID 创建新角色。 您可以在云控制台中查看角色的状态(已启用、已禁用、已删除)。

解决方案:从计费项目中删除现有角色(role_id CloudabilityRole_Billing ),然后重新运行脚本。

如何处理 GCP 域名限制?

如果有域限制,则可能会出现错误信息。 为解决此问题,请将 Cloudability 加入白名单,通过在组织策略中添加 Cloudability 的 GCP 工作区客户 ID 来查询数据。

域名是 cloudability.com ,ID 是 C03n3dgoi

要查看 GCP 付费方账户在 Cloudability 报告界面中的完整SCUD增强功能,应使用哪个计费导出文件进行凭证设置?

建议使用 GCP 详细计费导出功能,该功能可在 Cloudability 报告中全面呈现资源过度使用与使用不足的场景。

VPC 服务控制

基于 GPU 数据获取推荐

前置条件:

  1. 每台 VM 都必须配备GPU

  1. 每台 VM 都必须安装 GPU驱动程序

  1. 每台 VM 都必须安装 Python 3.6 或更高版本。

  1. 每个 VM 都必须安装创建 Python 虚拟环境所需的软件包。

参阅 《配置 GCP 监控代理以实现资源优化》 。