订购硬件

本页面介绍了如何订购 Google Distributed Cloud connected 硬件。互联 Distributed Cloud 在以下国家/地区提供:

  • 澳大利亚
  • 奥地利
  • 比利时
  • 巴西
  • 加拿大
  • 丹麦
  • 芬兰
  • 法国
  • 德国
  • 香港
  • 日本
  • 印度
  • 印度尼西亚
  • 意大利
  • 荷兰
  • 挪威
  • 波兰
  • 沙特阿拉伯
  • 新加坡
  • 韩国
  • 西班牙
  • 瑞典
  • 瑞士
  • 英国
  • 美国

在订购硬件之前,您必须满足 互联 Distributed Cloud 安装 要求

互联 Distributed Cloud 采购模式

您可以根据自己的业务需求,通过以下任一方式订购互联 Distributed Cloud 硬件:

  • Google 拥有的硬件。您可以直接从 Google 订购互联 Distributed Cloud 硬件。在这种情况下,Google 会采购、维护、维修和停用互联 Distributed Cloud 硬件。当您的合同到期时,Google 会收回 Distributed Cloud 硬件并销毁存储在其上的所有数据。

  • 客户采购的硬件。在与 Google 协商确定符合您业务需求的部署配置后,您可以从 Google 认证的系统集成商 (SI) 订购互联 Distributed Cloud。 在这种情况下,您拥有互联 Distributed Cloud 硬件。SI 会与您和 Google 合作部署、维修和停用硬件。当您的合同到期时,SI 会从互联 Distributed Cloud 硬件中清除所有 Google 软件和您的数据。然后,您可以随意重复使用或处置该硬件。这种类型的采购仅适用于互联 Distributed Cloud 服务器。

前提条件

在下订单之前,您必须准备好以下信息:

  • 订单联系人 。负责管理贵组织中互联 Distributed Cloud 硬件部署的人员。

  • 场地联系人 。负责所选部署网站的人员。Google 会与此人联系,以安排和完成互联 Distributed Cloud 硬件的交付。此人还会与 Google 或 Google 认证的 SI 协调硬件维修和停用事宜。

  • 可用区联系人 。负责将互联 Distributed Cloud 硬件集成到部署网站的现有网络和电源基础设施中的人员。

  • 订单标识符 。此互联 Distributed Cloud 硬件订单的有意义的标识符。

  • 场地标识符 。此互联 Distributed Cloud 硬件订单的部署网站的有意义的标识符。

  • 可用区标识符 。目标互联 Distributed Cloud 可用区的有意义的标识符。如果您每个网站仅部署一个可用区,请使用网站标识符作为可用区标识符。

使用 Google Cloud 控制台订购互联 Distributed Cloud 硬件

  1. 在 Google Cloud 控制台中,前往订单 页面。

    前往“订单”页面

  2. 选择目标 Google Cloud 项目。

  3. 点击创建订单

  4. 填写请求表单并提交。

销售代表会审核您提交的内容,并与您联系以 完成订单。 Google Cloud 该代表会执行以下操作:

  • 审核您的业务需求,帮助您最终确定硬件配置。
  • 收集有关您的本地网络、 Google Cloud 项目、安装地点以及安装要求中列出的其他要求的更多信息。
  • 在交付之前使用此信息配置 Distributed Cloud 硬件。

使用 GDC Hardware Management API 订购互联 Distributed Cloud 硬件

借助 GDC Hardware Management API,您可以以编程方式下达 Distributed Cloud 硬件订单。订单表示您打算部署互联 Distributed Cloud。订单必须包含以下信息,这些信息将在互联 Distributed Cloud 部署的整个生命周期中使用:

  • 订单管理和交付的联系人
  • 送货地址以及与送货相关的任何信息
  • 硬件配置
  • 网络配置

您必须与 Google 销售代表合作,填写客户信息问卷 (CIQ),并最终确定互联 Distributed Cloud 部署的范围和配置。

启用 GDC Hardware Management API

您必须先在目标 Google Cloud 项目上启用 GDC Hardware Management API,然后才能使用该 API。为此,请完成本部分中的步骤。

控制台

  1. 在 Google Cloud 控制台中,前往 GDC Hardware Management API 页面。

    启用 API

  2. 点击启用

gcloud

使用以下命令:

gcloud services enable gdchardwaremanagement.googleapis.com

订单的结构

如需使用 GDC Hardware Management API 下订单,您必须创建 Order 资源,以及 Order 资源引用的随附 SiteZoneHardware 资源。然后,您将 Order 资源提交给 Google。这些资源支持标准 CRUD 操作。 每个资源的名称都是一个路径,其中包含目标 Google Cloud 项目 ID 和 Google Cloud 区域。

这些资源具有以下功能。如需详细了解如何使用 GDC Hardware Management API,请参阅 Google Distributed Cloud CLI 和 API 参考文档

  • Order。此资源请求创建一个或多个 Distributed Cloud 可用区。 创建此资源时,它会收到一个可在 create_order_response.name 字段中访问的名称。 Order 资源名称的格式如下:

    `projects/`PROJECT_ID`/locations/`REGION`/orders/`ORDER_ID

    其中:

    • PROJECT_ID:目标 Google Cloud 项目的 ID。
    • REGION:您要在其中部署 Distributed Cloud 可用区的 Google Cloud 区域。
    • ORDER_ID:用于标识此订单的唯一 ID。如果省略,系统会自动生成一个值。我们建议您提供一个由 小写字母、数字和短划线组成的唯一订单 ID 值。否则,失败的订单创建调用可能会生成重复订单。
  • Site。此资源表示您要部署 Distributed Cloud 硬件的实际位置。此资源包含负责协调初始交付和未来维护的负责人的联系信息。 此联系人可能与您在订单中提供的联系人不同。

  • Hardware。此资源会实例化互联 Distributed Cloud SKU,并表示 Distributed Cloud 服务器或机架。每个 Hardware 资源都会引用关联的 OrderSiteZone 资源。如需查看可用的 SKU,请使用 ListSkus API 调用。

  • Zone。此资源指定互联 Distributed Cloud 机器和关联集群的网络配置。Distributed Cloud 可用区涵盖一个或多个互联 Distributed Cloud 机架,或部署在您所在位置的所有互联 Distributed Cloud 服务器机器。

当您向 Google 提交 Order 资源且其 状态DRAFT 更改为 SUBMITTEDINFO_COMPLETE 时,大多数字段值都会变为只读。

订单的生命周期

Order 资源可以具有 State 中列出的状态之一。 相关方可以对订单发表评论,这些评论会存储为嵌套在相应 Order 资源下的 Comment 资源。您可以通过 GDC Hardware Management API 和 Google Cloud 控制台读取和提交评论。

GDC Hardware Management API 支持以下订单生命周期操作:

  • 创建并提交订单 。您可以创建并立即提交订单,也可以逐步构建订单并将其保存为 DRAFT 状态,直到准备好提交为止。本指南的其余部分介绍了此过程。

  • 查看订单状态。如果订单以 类型 INFO_COMPLETE提交,并且您已与 Google 签署合同,则订单将按以下状态 顺序进行:ACCEPTED, BUILDING, SHIPPINGINSTALLINGCOMPLETED. 关联的 ZoneHardware 资源的状态会与 Order 资源同步更新。

  • 解决订单问题。如果我们还需要您提供更多信息,或者您尚未与 Google 签署合同,则订单将进入 ADDITIONAL_INFO_NEEDED 状态,并等待通过 评论解决。请在评论中查找进一步说明,如果后续步骤在任何时候不清楚,请与 Google 联系。

  • 删除未提交的订单 。您可以使用 DELETE 调用删除未提交的订单。

  • 修改已提交的订单 。您可以使用相应的 PATCH 调用修改已提交的 订单网站可用区 。提交后,您可以修改以下字段:

    • 所有资源:display_namelabels
    • 订单:organization_contact
    • 网站:access_timesorganization_contact 的大多数字段,但不包括 网址
    • 硬件:如果以下条件中至少有一个成立,则为 requested_installation_date
      • 新日期距离现在超过 45 天
      • requested_installation_date 晚于当前 requested_installation_dateestimated_installation_date 为空
      • requested_installation_date 晚于当前 requested_installation_dateestimated_installation_date 距离现在至少 7 天

    订单提交后,您无法修改任何其他信息,但您 可以通过发表 评论要求 Google 修改。

  • 取消已提交的订单 。您可以通过向已提交的订单添加请求取消的 评论 来取消该订单。

选择目标 Google Cloud 项目

项目是一种结构,用于封装一组资源,使其可供您使用,并为这些资源建立访问权限控制和结算规则。 Google Cloud Google Cloud

我们建议您为每个管理网域(例如国家/地区或公司部门)和高级别用例(例如边缘与核心)创建一个单独的 Google Cloud 项目,并通过该 Google Cloud 项目管理该网域的互联 Distributed Cloud 部署。

借助 Google Cloud 项目,您可以执行以下管理任务:

  • 订购互联 Distributed Cloud 硬件。
  • 配置互联 Distributed Cloud 集群并在舰队中注册这些集群。
  • 管理软件发布。
  • 管理 Cloud Storage 中的互联 Distributed Cloud 数据。
  • 管理 Secret Manager 中的互联 Distributed Cloud 凭据。
  • 管理 Cloud Monitoring 中的互联 Distributed Cloud 日志和指标。

您的确切 Google Cloud 项目拓扑取决于您的业务需求。我们建议您避免跨项目依赖项,并始终在每个 Google Cloud 项目中创建和使用资源。

在特定 Google Cloud 项目中订购的硬件始终在该 Google Cloud 项目中进行管理。

选择目标 Google Cloud 区域

互联 Distributed Cloud 部署的具体区域选择取决于您的业务需求以及目标地理位置的法律影响。 Google Cloud

如果您要将互联 Distributed Cloud 部署集成到现有的多区域 Google Cloud 覆盖范围中,我们建议您将每个互联 Distributed Cloud 可用区 映射到托管该可用区依赖项的 Google Cloud 区域。

如果您不将互联 Distributed Cloud 部署与现有 Google Cloud 覆盖范围集成,我们建议您多样化选择 Google Cloud 区域,以提高可靠性。例如:

  • 将每个互联 Distributed Cloud 可用区映射到其最近的受支持 Google Cloud 区域。这会将管理平面故障的影响限制在单个地理区域内。
  • 将互联 Distributed Cloud 分布在多个 Google Cloud 区域中。这会限制可能受管理平面故障影响的互联 Distributed Cloud 可用区的数量;但是,受影响的可用区分布在更大的地理区域内。

    互联 Distributed Cloud 支持以下 Google Cloud 区域:

  • 亚洲asia-east1asia-east2asia-northeast1asia-northeast3asia-south1asia-south2asia-southeast1asia-southeast2

  • 欧洲europe-central2europe-north1europe-west1europe-west2europe-west3europe-west4europe-west6europe-west8europe-west9

  • 中东me-central1me-west1

  • 大洋洲australia-southeast1

  • 北美洲northamerica-northeast1northamerica-northeast2us-central1us-central2us-east1us-east4us-east5us-east7us-south1us-west1us-west2us-west3us-west4us-west8

  • 南美洲southamerica-east1southamerica-west1

设置环境

在开始之前,请完成以下前提条件:

  1. 设置 Python 开发环境

  2. 使用以下命令安装 GDC Hardware Management API 客户端库:

    python3 -m pip install google-cloud-gdchardwaremanagement
    
  3. 在目标 Google Cloud 项目上启用 GDC Hardware Management API

使用 GDC Hardware Management API 创建并提交互联 Distributed Cloud 硬件订单

本部分中的步骤是一些示例,说明了如何使用 GDC Hardware Management API 创建 Order 资源并将其提交给 Google。如需完成本部分中的步骤,您必须在您的 Google Cloud 项目中拥有 GDC Hardware Management Admin (roles/gdchardwaremanagement.admin) 角色。如需详细了解可用类型和方法,请参阅 Python 客户端库 参考文档

  1. 创建 Order 资源。例如:

    import datetime
    from google.cloud import gdchardwaremanagement_v1alpha
    from google.protobuf.timestamp_pb2 import Timestamp
    from google.type import postal_address_pb2
    
    client = gdchardwaremanagement_v1alpha.GDCHardwareManagementClient()
    
    contact = gdchardwaremanagement_v1alpha.Contact(
        given_name="John",
        family_name="Customer",
        email="jcustomer@example.com",
        phone="+1 123 456 7890",
    )
    
    organization_contact = gdchardwaremanagement_v1alpha.OrganizationContact(
        address=postal_address_pb2.PostalAddress(
            organization="Example Organization",
            address_lines=["1800 Amphibious Blvd."],
            locality="Mountain View",
            administrative_area="CA",
            postal_code="94045",
            region_code="US",
        ),
        contacts=[contact],
    )
    
    order = gdchardwaremanagement_v1alpha.Order(
        organization_contact=organization_contact,
        customer_motivation="I like Google Distributed Cloud!",
        fulfillment_time=Timestamp(
            seconds=int(datetime.datetime(2024, 11, 22, 9, 0).timestamp()),
        ),
        region_code="US",
    )
    
    create_order_response = client.create_order(
        request=gdchardwaremanagement_v1alpha.CreateOrderRequest(
            parent="projects/myProject/locations/us-east1",
            order_id="myOrderID",
            order=order,
        ),
    ).result()

    您的订单现在处于 DRAFT 状态,并且已分配一个存储在 create_order_response.name 字段中的资源名称。修改或跟踪此订单的状态时,请使用此资源名称。

  2. 创建 Site 资源。例如:

    site = gdchardwaremanagement_v1alpha.Site(
        organization_contact=organization_contact,
        google_maps_pin_uri="https://maps.app.goo.gl/z7bE8z8fffg6Sri46",
    )
    
    create_site_response = client.create_site(
        request=gdchardwaremanagement_v1alpha.CreateSiteRequest(
            parent="projects/myProject/locations/us-east1",
            site_id="mySite",
            site=site,
        ),
    ).result()
  3. 创建 Zone 资源。例如:

    zone = gdchardwaremanagement_v1alpha.Zone(
        contacts=[contact],
        network_config=gdchardwaremanagement_v1alpha.ZoneNetworkConfig(
            management_ipv4_subnet=gdchardwaremanagement_v1alpha.Subnet(
                address_range="192.0.2.0/24",
                default_gateway_ip_address="192.0.2.1",
            ),
            machine_mgmt_ipv4_range="192.0.2.8/29",
            kubernetes_ipv4_subnet=gdchardwaremanagement_v1alpha.Subnet(
                address_range="203.0.113.0/24",
                default_gateway_ip_address="203.0.113.1",
            ),
            kubernetes_node_ipv4_range="203.0.113.8/29",
            kubernetes_control_plane_ipv4_range="203.0.113.16/29",
        ),
    )
    
    create_zone_response = client.create_zone(
        request=gdchardwaremanagement_v1alpha.CreateZoneRequest(
            parent="projects/myProject/locations/us-east1",
            zone_id="myZone",
            zone=zone,
        ),
    ).result()
  4. 创建 Hardware 资源。您必须为互联 Distributed Cloud 部署中的每台机器指定唯一的 hardware_id 值。 例如:

    from google.type import date_pb2
    
    hardware = gdchardwaremanagement_v1alpha.Hardware(
        order=create_order_response.name,
        site=create_site_response.name,
        zone=create_zone_response.name,
        config=gdchardwaremanagement_v1alpha.HardwareConfig(
            sku="projects/myProject/locations/us-east1/skus/gdce-server-l",
            power_supply=gdchardwaremanagement_v1alpha.types.PowerSupply.POWER_SUPPLY_AC,
        ),
        physical_info=gdchardwaremanagement_v1alpha.HardwarePhysicalInfo(
            power_receptacle=gdchardwaremanagement_v1alpha.types.HardwarePhysicalInfo.PowerReceptacleType.NEMA_5_15,
            network_uplink=gdchardwaremanagement_v1alpha.types.HardwarePhysicalInfo.NetworkUplinkType.RJ_45,
            voltage=gdchardwaremanagement_v1alpha.types.HardwarePhysicalInfo.Voltage.VOLTAGE_110,
            amperes=gdchardwaremanagement_v1alpha.types.HardwarePhysicalInfo.Amperes.AMPERES_15,
        ),
        installation_info=gdchardwaremanagement_v1alpha.HardwareInstallationInfo(
            rack_location="Floor 2, Room 201, Row 7, Rack 3",
            power_distance_meters=2,
            switch_distance_meters=2,
            rack_unit_dimensions=gdchardwaremanagement_v1alpha.Dimensions(
                width_inches=19,
                height_inches=1.75,
                depth_inches=30,
            ),
            rack_space=gdchardwaremanagement_v1alpha.RackSpace(
                start_rack_unit=12,
                end_rack_unit=12,
            ),
            rack_type=gdchardwaremanagement_v1alpha.types.HardwareInstallationInfo.RackType.FOUR_POST,
        ),
        requested_installation_date=date_pb2.Date(year=2024, month=11, day=22),
    )
    
    create_hardware_response = client.create_hardware(
        request=gdchardwaremanagement_v1alpha.CreateHardwareRequest(
            parent="projects/myProject/locations/us-east1",
            hardware_id="machineHardwareID",
            hardware=hardware,
        ),
    ).result()
  5. Order 资源提交给 Google:

    submit_order_response = client.submit_order(
        request=gdchardwaremanagement_v1alpha.SubmitOrderRequest(
            name=create_order_response.name,
            type_=gdchardwaremanagement_v1alpha.types.SubmitOrderRequest.Type.INFO_COMPLETE,
        ),
    ).result()

    提交类型 表示您已在 ZoneHardware 资源中提供了所有必需的信息。INFO_COMPLETE如果缺少任何字段值,提交操作将失败,并显示描述问题的错误消息。如果您想在未完全填充订单的情况下与 Google 展开对话,请以 INFO_PENDING 状态提交订单,以跳过这些验证。

测试

如果您想提交测试订单,请与 Google 联系以获取对沙盒环境的访问权限。 在您的项目或组织获得访问权限后,您可以使用带有 fake- 前缀的测试 SKU。测试订单会按前面所述的阶段进行,但不会触发货币费用或硬件发货。

问题排查

本部分介绍了最常遇到的错误、其原因以及可用的补救措施。

错误:400 FAILED_PRECONDITION

如果您在收到 API 调用响应时收到 400 错误代码,且状态为 FAILED_PRECONDITION,请检查您的请求对于您尝试完成的操作是否有效。无效请求的示例包括提交缺少字段或值的 Order 资源,或尝试删除与先前提交的 Order 资源关联的 Hardware 资源。

错误:400 INVALID_ARGUMENT

如果您在收到 API 调用响应时收到 400 错误代码,且状态为 INVALID_ARGUMENT,请检查是否存在不正确的字段名称和值(与预期类型不匹配)或缺少值的情况。如果您在 PATCH 请求中使用 updateMask,并且 updateMask 中指定的一个或多个字段无效,您也可能会收到此错误。

如需解决此问题,请参阅 GDC Hardware Management API ,以验证所有字段名称和值(包括格式)是否正确。如果使用 JSON 载荷,请确认载荷中包含所有必需的信息。

错误:401 UNAUTHENTICATED

如果您在收到 API 调用响应时收到 401 错误代码,且状态为 UNAUTHENTICATED,请检查您的身份验证配置。如需了解详情,请参阅 设置应用默认凭证

错误:403 PERMISSION_DENIED

如果您在收到 API 调用响应时收到 403 错误代码,且状态为 PERMISSION_DENIED,请检查用于进行 API 调用的服务帐号是否具有足够的权限来访问目标对象和资源。另请验证凭据是否正确且未过期。

错误:404 NOT_FOUND

如果您在收到 API 调用响应时收到 404 错误代码,且状态为 NOT_FOUND,请检查您的 API 调用中指定的资源名称和路径是否有效。请参阅 GDC Hardware Management API ,以验证您的请求网址的结构是否正确,以及网址中包含的所有字段 是否有效。

后续步骤