Pedir hardware

En esta página, se describe cómo pedir hardware conectado de Google Distributed Cloud. Distributed Cloud Connected está disponible en los siguientes países:

  • Australia
  • Austria
  • Bélgica
  • Brasil
  • Canadá
  • Dinamarca
  • Finlandia
  • Francia
  • Alemania
  • Hong Kong
  • Japón
  • India
  • Indonesia
  • Italia
  • Países Bajos
  • Noruega
  • Polonia
  • Arabia Saudita
  • Singapur
  • Corea del Sur
  • España
  • Suecia
  • Suiza
  • Reino Unido
  • Estados Unidos

Antes de solicitar el hardware, debes cumplir con los requisitos de instalación de Distributed Cloud conectado.

Solicita hardware conectado a Distributed Cloud con la consola de Google Cloud

  1. En la consola de Google Cloud , ve a la página Pedidos.

    Ir a Pedidos

  2. Selecciona el proyecto Google Cloud de destino.

  3. Haz clic en Crear pedido.

  4. Completa el formulario de solicitud y envíalo.

Un representante de ventas revisará tu envío y se comunicará contigo para completar el pedido. Google Cloud El representante hace lo siguiente:

  • Revisa tus requisitos comerciales para ayudarte a elegir la configuración de hardware óptima.
  • Recopila información sobre tu red local, Google Cloud proyecto, sitio de instalación y otros requisitos que se indican en los requisitos de instalación.
  • Se usa esta información para configurar el hardware de Distributed Cloud antes de la entrega.

Solicita hardware de Distributed Cloud conectado con la API de GDC Hardware Management

La API de GDC Hardware Management te permite realizar pedidos de hardware de Distributed Cloud de forma programática. Un pedido constituye tu intención de implementar Distributed Cloud conectado. Un pedido debe incluir la siguiente información, que se usa durante todo el ciclo de vida de tu implementación conectada de Distributed Cloud:

  • Punto de contacto para la administración de pedidos y la entrega
  • Dirección del sitio de entrega y cualquier información relevante para la entrega
  • Configuración de hardware
  • Configuración de red

Debes trabajar con tu representante de ventas de Google para completar el Cuestionario de información del cliente (CIQ) y finalizar el alcance y la configuración de tu implementación de Distributed Cloud conectado.

Estructura de un pedido

Para realizar un pedido con la API de GDC Hardware Management, debes crear un recurso Order, además de los recursos Site, Zone y Hardware que lo acompañan y a los que hace referencia el recurso Order. Luego, envías el recurso Order a Google. Estos recursos admiten operaciones de CRUD estándar. El nombre de cada recurso es una ruta de acceso que incluye el ID del proyecto Google Cloud y la Google Cloud región de destino.

Estos recursos tienen las siguientes funciones. Para obtener más información sobre el uso de la API de GDC Hardware Management, consulta la referencia de la API y la CLI de Google Distributed Cloud.

  • Order: Este recurso solicita la creación de una o más zonas de Distributed Cloud. Cuando creas este recurso, recibe un nombre al que se puede acceder en el campo create_order_response.name. El nombre del recurso Order tiene el siguiente formato:

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

    Donde:

    • PROJECT_ID: Es el ID del proyecto Google Cloud de destino.
    • REGION: Es la Google Cloud región en la que deseas implementar tus zonas de Distributed Cloud.
    • ORDER_ID: Es un ID único que identifica este pedido. Si se omite, se generará un valor automáticamente. Te recomendamos que proporciones un valor de ID de pedido único que contenga letras minúsculas, números y guiones. De lo contrario, las llamadas de creación de pedidos fallidas pueden generar pedidos duplicados.
  • Site: Este recurso representa la ubicación física en la que deseas implementar tu hardware de Distributed Cloud. Este recurso incluye la información de contacto de una parte responsable que coordina el acceso para la entrega inicial y el mantenimiento futuro. Es posible que este contacto sea diferente del que proporcionaste en el pedido.

  • Hardware: Este recurso crea una instancia de un SKU de Distributed Cloud conectado y representa un servidor o rack de Distributed Cloud. Cada recurso Hardware hace referencia a los recursos Order, Site y Zone asociados. Para ver los SKU disponibles, usa la llamada a la API de ListSkus.

  • Zone: Este recurso especifica la configuración de red de tus máquinas conectadas a Distributed Cloud y los clústeres asociados. Una zona de Distributed Cloud abarca uno o más racks conectados de Distributed Cloud o todas las máquinas servidoras conectadas de Distributed Cloud implementadas en tu ubicación.

Cuando envías un recurso Order a Google y su estado cambia de DRAFT a SUBMITTED, la mayoría de los valores de los campos se vuelven de solo lectura.

Ciclo de vida de un pedido

Un recurso Order puede tener uno de los estados que se indican en State. Las partes involucradas pueden dejar comentarios sobre el pedido, que se almacenan como recursos Comment anidados en el recurso Order correspondiente. Puedes leer y enviar comentarios a través de la API de GDC Hardware Management y la consola de Google Cloud .

Si el pedido contiene toda la información requerida y firmaste un contrato con Google, el pedido pasa por la siguiente sucesión de estados: ACCEPTED, BUILDING, SHIPPING, INSTALLING y COMPLETED.. Los estados de los recursos Zone y Hardware asociados se actualizan de forma sincronizada con el recurso Order. Si necesitamos más información de tu parte o no firmaste un contrato con Google, el pedido entrará en el estado ADDITIONAL_INFO_NEEDED y esperará una resolución a través de comentarios. Las modificaciones o cancelaciones de pedidos se deben solicitar a través de comentarios.

Selecciona el proyecto Google Cloud de destino.

Un proyecto de Google Cloud es una estructura que encapsula un conjunto de recursos de Google Cloud , los pone a tu disposición para que los uses y establece reglas para el control de acceso y la facturación de esos recursos.

Te recomendamos que crees un proyecto Google Cloud independiente para cada dominio administrativo, como un país o un departamento corporativo, y un caso de uso de alto nivel, como el borde en comparación con el núcleo, y que administres tu implementación conectada de Distributed Cloud para el dominio a través de ese proyecto Google Cloud .

El proyecto Google Cloud te permite realizar las siguientes tareas de administración:

  • Solicita hardware conectado a Distributed Cloud.
  • Configurar clústeres conectados de Distributed Cloud y registrarlos en una flota
  • Administrar lanzamientos de software
  • Administrar los datos conectados de Distributed Cloud en Cloud Storage
  • Administra las credenciales de Distributed Cloud Connected en Secret Manager.
  • Administra los registros y las métricas de Distributed Cloud Connected en Cloud Monitoring.

La topología exacta de tu proyecto Google Cloud depende de tus requisitos comerciales. Te recomendamos que evites las dependencias entre proyectos y que siempre crees y uses recursos dentro de cada proyecto de Google Cloud .

El hardware pedido dentro de un proyecto Google Cloud específico siempre se administra en ese proyecto Google Cloud .

Selecciona la Google Cloud región objetivo.

La elección específica de Google Cloud regiones para tu implementación conectada de Distributed Cloud depende de los requisitos de tu empresa y las ramificaciones legales de las ubicaciones geográficas objetivo.

Si integras tu implementación conectada de Distributed Cloud en una presencia existente deGoogle Cloud en varias regiones, te recomendamos que asignes cada zona conectada de Distributed Cloud a la región de Google Cloud que aloja las dependencias de esa zona.

Si no integras la implementación conectada de Distributed Cloud con una presencia existente de Google Cloud, te recomendamos que diversifiques tu selección de regiones de Google Cloud para aumentar la confiabilidad. Por ejemplo:

  • Asigna cada zona de Distributed Cloud connected a su Google Cloud región admitida más cercana. Esto limita el impacto de una falla del plano de administración a una sola región geográfica.
  • Segmenta tu Distributed Cloud conectado en varias Google Cloud regiones. Esto limita la cantidad de zonas conectadas de Distributed Cloud que pueden verse afectadas por una falla en el plano de administración. Sin embargo, las zonas afectadas se distribuyen en una región geográfica más grande.

    Distributed Cloud Connected admite las siguientes Google Cloud regiones:

  • Asia: asia-east1, asia-east2, asia-northeast1, asia-northeast3, asia-south1, asia-south2, asia-southeast1, asia-southeast2

  • Europa: europe-central2, europe-north1, europe-west1, europe-west2, europe-west3, europe-west4, europe-west6, europe-west8, europe-west9

  • Oriente Medio: me-central1, me-west1

  • Oceanía: australia-southeast1

  • Norteamérica: northamerica-northeast1, northamerica-northeast2, us-central1, us-central2, us-east1, us-east4, us-east5, us-east7, us-south1, us-west1, us-west2, us-west3, us-west4, us-west8

  • América del Sur: southamerica-east1, southamerica-west1

Configura tu entorno

Antes de comenzar, completa los siguientes requisitos previos:

  1. Configura un entorno de desarrollo de Python.

  2. Instala la biblioteca cliente de la API de GDC Hardware Management con el siguiente comando:

    python3 -m pip install google-cloud-gdchardwaremanagement
    
  3. Habilita la API de GDC Hardware Management en el proyecto de Google Cloud destino.

Crea y envía un pedido de hardware de Distributed Cloud conectado con la API de GDC Hardware Management

Los pasos de esta sección son ejemplos que ilustran cómo crear y enviar un recurso Order a Google con la API de GDC Hardware Management. Para completar los pasos de esta sección, debes tener el rol de Administrador de administración de hardware de GDC (roles/gdchardwaremanagement.admin) en tu proyecto de Google Cloud .

  1. Crea un recurso Order. Por ejemplo:

    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()

    Tu pedido ahora está en estado DRAFT y se le asignó un nombre de recurso almacenado en el campo create_order_response.name. Usa este nombre de recurso cuando modifiques o hagas un seguimiento del estado de este pedido.

  2. Crea un recurso Site Por ejemplo:

    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. Crea un recurso Zone Por ejemplo:

    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. Crea los recursos Hardware. Debes especificar un valor de hardware_id único para cada máquina en tu implementación conectada de Distributed Cloud. Por ejemplo:

    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. Envía el recurso Order a Google:

    submit_order_response = client.submit_order(
        request=gdchardwaremanagement_v1alpha.SubmitOrderRequest(
            name=create_order_response.name,
        ),
    ).result()

Soluciona problemas

En esta sección, se describen los errores más comunes, sus causas y las soluciones disponibles.

Error: 400 FAILED_PRECONDITION

Si recibes un código de error 400 con un estado FAILED_PRECONDITION en respuesta a tu llamada a la API, verifica que tu solicitud sea válida para la operación que intentas completar. Entre los ejemplos de solicitudes no válidas, se incluyen el envío de un recurso Order con campos o valores faltantes, o el intento de borrar un recurso Hardware asociado con un recurso Order enviado previamente.

Error: 400 INVALID_ARGUMENT

Si recibes un código de error 400 con un estado INVALID_ARGUMENT en respuesta a tu llamada a la API, verifica si hay nombres de campos y valores incorrectos que no coincidan con sus tipos esperados, o bien si faltan valores. También es posible que recibas este error si usas un updateMask en una solicitud PATCH y uno o más campos especificados en el updateMask no son válidos.

Para solucionar este problema, consulta la API de GDC Hardware Management y verifica que todos los nombres y valores de los campos sean correctos, incluido el formato. Si usas una carga útil de JSON, confirma que se incluya toda la información requerida en ella.

Error: 401 UNAUTHENTICATED

Si recibes un código de error 401 con un estado UNAUTHENTICATED en respuesta a tu llamada a la API, verifica la configuración de autenticación. Para obtener más información, consulta Configura credenciales predeterminadas de la aplicación.

Error: 403 PERMISSION_DENIED

Si recibes un código de error 403 con un estado PERMISSION_DENIED en respuesta a tu llamada a la API, verifica si la cuenta de servicio que se usó para realizar la llamada a la API tiene privilegios suficientes para acceder a los objetos y recursos de destino. También verifica que las credenciales sean correctas y no hayan vencido.

Error: 404 NOT_FOUND

Si recibes un código de error 404 con un estado NOT_FOUND en respuesta a tu llamada a la API, verifica que los nombres y la ruta de acceso del recurso especificados en la llamada a la API sean válidos. Consulta la API de GDC Hardware Management para verificar que la URL de la solicitud esté estructurada correctamente y que todos los campos incluidos en la URL sean válidos.

¿Qué sigue?