Commander du matériel

Cette page explique comment commander du matériel connecté Google Distributed Cloud. Distributed Cloud connecté est disponible dans les pays suivants :

  • Australie
  • Autriche
  • Belgique
  • Brésil
  • Canada
  • Danemark
  • Finlande
  • France
  • Allemagne
  • Hong Kong
  • Japon
  • Inde
  • Indonésie
  • Italie
  • Pays-Bas
  • Norvège
  • Pologne
  • Arabie saoudite
  • Singapour
  • Corée du Sud
  • Espagne
  • Suède
  • Suisse
  • Royaume-Uni
  • États-Unis

Avant de commander le matériel, vous devez respecter les exigences d'installation de Distributed Cloud connecté.

Commander du matériel connecté Distributed Cloud à l'aide de la Google Cloud console

  1. Dans la Google Cloud console, accédez à la page Commandes.

    Accéder aux commandes

  2. Sélectionnez le projet cible Google Cloud .

  3. Cliquez sur Créer une commande.

  4. Remplissez le formulaire de demande, puis envoyez-le.

Un Google Cloud représentant commercial examine votre demande et vous contacte pour finaliser la commande. Il effectue les opérations suivantes :

  • Il examine les besoins de votre entreprise pour vous aider à choisir la configuration matérielle optimale.
  • Il collecte des informations sur votre réseau local, Google Cloud votre projet, votre site d'installation et d'autres exigences listées dans les exigences d'installation.
  • Il utilise ces informations pour configurer votre matériel Distributed Cloud avant la livraison.

Commander du matériel connecté Distributed Cloud à l'aide de l'API GDC Hardware Management

L'API GDC Hardware Management vous permet de passer une commande de matériel Distributed Cloud par programmation. Une commande constitue votre intention de déployer Distributed Cloud connecté. Une commande doit inclure les informations suivantes, qui sont utilisées tout au long du cycle de vie de votre déploiement Distributed Cloud connecté :

  • Point de contact pour la gestion et la livraison des commandes
  • Adresse du site de livraison et toute information pertinente pour la livraison
  • Configuration matérielle
  • Configuration du réseau

Vous devez collaborer avec votre représentant commercial Google pour remplir le questionnaire d'informations client et finaliser le champ d'application et la configuration de votre déploiement Distributed Cloud connecté.

Structure d'une commande

Pour passer une commande à l'aide de l'API GDC Hardware Management, vous devez créer une ressource Order, ainsi que les ressources Site, Zone et Hardware associées auxquelles la ressource Order fait référence. Vous envoyez ensuite la ressource Order à Google. Ces ressources sont compatibles avec les opérations CRUD standards. Le nom de chaque ressource est un chemin d'accès qui inclut l'ID du projet cible Google Cloud et la région Google Cloud .

Ces ressources ont les fonctions suivantes. Pour en savoir plus sur l'utilisation de l'API GDC Hardware Management, consultez la documentation de référence de la CLI et de l'API Google Distributed Cloud.

  • Order. Cette ressource demande la création d'une ou de plusieurs zones Distributed Cloud. Lorsque vous créez cette ressource, elle reçoit un nom accessible dans le champ create_order_response.name. Le nom de la ressource Order est au format suivant :

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

    où :

    • PROJECT_ID : ID du projet cible. Google Cloud
    • REGION : région dans laquelle Google Cloud vous souhaitez déployer vos zones Distributed Cloud.
    • ORDER_ID : ID unique qui identifie cette commande. Si cette valeur est omise, elle est générée automatiquement. Nous vous recommandons de fournir une valeur d'ID de commande unique composée de lettres minuscules, de chiffres et de tirets. Sinon, les appels de création de commande ayant échoué peuvent générer des commandes en double.
  • Site. Cette ressource représente l'emplacement physique où vous souhaitez déployer votre matériel Distributed Cloud. Cette ressource inclut les coordonnées d'un responsable qui coordonne l'accès pour la livraison initiale et la maintenance future. Ce contact peut être différent de celui que vous avez fourni lors de la commande.

  • Hardware. Cette ressource instancie une référence (SKU) Distributed Cloud connecté et représente un serveur ou un rack Distributed Cloud. Chaque ressource Hardware fait référence aux ressources Order, Site et Zone associées. Pour afficher les références disponibles, utilisez l' ListSkus.

  • Zone. Cette ressource spécifie la configuration réseau de vos machines Distributed Cloud connecté et des clusters associés. Une zone Distributed Cloud couvre un ou plusieurs racks Distributed Cloud connecté ou toutes les machines serveur Distributed Cloud connecté déployées sur votre site.

Lorsque vous envoyez une ressource Order à Google et que son état passe de DRAFT à SUBMITTED, la plupart des valeurs de champ deviennent en lecture seule.

Cycle de vie d'une commande

Une ressource Order peut avoir l'un des états listés dans State. Les parties concernées peuvent laisser des commentaires sur la commande, qui sont stockés en tant que ressources Comment imbriquées sous la ressource Order correspondante. Vous pouvez lire et envoyer des commentaires via l' API GDC Hardware Management et la Google Cloud console.

Si la commande contient toutes les informations requises et que vous avez signé un contrat avec Google, elle passe par les états suivants : ACCEPTED, BUILDING, SHIPPING, INSTALLING et COMPLETED. Les états des ressources Zone et Hardware associées sont mis à jour en même temps que la ressource Order. Si nous avons besoin d'informations supplémentaires de votre part ou si vous n'avez pas signé de contrat avec Google, la commande passe à l'état ADDITIONAL_INFO_NEEDED et attend une résolution par le biais de commentaires. La modification ou l'annulation d'une commande doit être demandée par le biais de commentaires.

Sélectionner le projet cible Google Cloud

Un Google Cloud projet est une construction qui encapsule un ensemble de Google Cloud ressources, les met à votre disposition et établit des règles de contrôle des accès et de facturation pour ces ressources.

Nous vous recommandons de créer un Google Cloud projet distinct par domaine administratif, tel qu' un pays ou un service d'entreprise, et un cas d'utilisation de haut niveau, tel que l'edge par rapport au cœur, et de gérer votre déploiement Distributed Cloud connecté pour le domaine via ce Google Cloud projet.

Le Google Cloud projet vous permet d'effectuer les tâches de gestion suivantes :

  • Commander du matériel connecté Distributed Cloud.
  • Configurer des clusters Distributed Cloud connecté et les enregistrer dans un parc.
  • Gérer les déploiements de logiciels.
  • Gérer les données Distributed Cloud connecté dans Cloud Storage.
  • Gérer les identifiants Distributed Cloud connecté dans Secret Manager.
  • Gérer les journaux et les métriques Distributed Cloud connecté dans Cloud Monitoring.

La topologie exacte de votre projet Google Cloud dépend des besoins de votre entreprise. Nous vous recommandons d'éviter les dépendances entre projets et de toujours créer et utiliser des ressources dans chaque Google Cloud projet.

Le matériel commandé dans un projet spécifique Google Cloud est toujours géré dans ce Google Cloud projet.

Sélectionner la région cible Google Cloud

Le choix spécifique des Google Cloud régions pour votre déploiement Distributed Cloud connecté dépend des besoins de votre entreprise et des conséquences juridiques de vos emplacements géographiques cibles.

Si vous intégrez votre déploiement Distributed Cloud connecté dans une empreinte multirégionale existante Google Cloud , nous vous recommandons de mapper chaque zone Distributed Cloud connecté à la Google Cloud région qui héberge les dépendances de cette zone.

Si vous n'intégrez pas le déploiement Distributed Cloud connecté à une empreinte existante Google Cloud, nous vous recommandons de diversifier votre Google Cloud sélection de régions pour une fiabilité accrue. Exemple :

  • Mappez chaque zone Distributed Cloud connecté à la région compatible la plus proche Google Cloud . Cela limite l'impact d'une défaillance du plan de gestion à une seule région géographique.
  • Répartissez votre Distributed Cloud connecté sur plusieurs Google Cloud régions. Cela limite le nombre de zones Distributed Cloud connecté qui peuvent être affectées par une défaillance du plan de gestion. Toutefois, les zones concernées sont réparties sur une plus grande région géographique.

    Distributed Cloud connecté est compatible avec les régions suivantes Google Cloud :

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

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

  • Moyen-Orient : me-central1, me-west1

  • Océanie : australia-southeast1

  • Amérique du Nord : 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érique du Sud : southamerica-east1, southamerica-west1

Configurer votre environnement

Avant de commencer, passez en revue les conditions préalables suivantes :

  1. Configurer un environnement de développement Python.

  2. Installez la bibliothèque cliente de l'API GDC Hardware Management à l'aide de la commande suivante :

    python3 -m pip install google-cloud-gdchardwaremanagement
    
  3. Activez l'API GDC Hardware Management sur le projet Google Cloud cible.

Créer et envoyer une commande de matériel connecté Distributed Cloud à l'aide de l'API GDC Hardware Management

Les étapes de cette section sont des exemples qui illustrent comment créer et envoyer une ressource Order à Google à l'aide de l'API GDC Hardware Management. Pour suivre les étapes de cette section, vous devez disposer du rôle Administrateur de la gestion du matériel GDC (roles/gdchardwaremanagement.admin) dans votre Google Cloud projet.

  1. Créer une ressource Order. Exemple :

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

    Votre commande est désormais à l'état DRAFT et un nom de ressource lui a été attribué. Il est stocké dans le champ create_order_response.name. Utilisez ce nom de ressource lorsque vous modifiez ou suivez l'état de cette commande.

  2. Créer une ressource Site. Exemple :

    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. Créer une ressource Zone. Exemple :

    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. Créer les ressources Hardware. Vous devez spécifier une valeur hardware_id unique pour chaque machine de votre déploiement Distributed Cloud connecté. Exemple :

    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. Envoyez la ressource Order à Google :

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

Dépannage

Cette section décrit les erreurs les plus courantes, leurs causes et les solutions disponibles.

Erreur : 400 FAILED_PRECONDITION

Si vous recevez un code d'erreur 400 avec un état FAILED_PRECONDITION en réponse à votre appel d'API, vérifiez que votre requête est valide pour l'opération que vous tentez d'effectuer. Par exemple, vous pouvez envoyer une ressource Order avec des champs ou des valeurs manquants, ou tenter de supprimer une ressource Hardware associée à une ressource Order précédemment envoyée.

Erreur : 400 INVALID_ARGUMENT

Si vous recevez un code d'erreur 400 avec un état INVALID_ARGUMENT en réponse à votre appel d'API, recherchez des noms de champs et des valeurs incorrects qui ne correspondent pas aux types attendus, ou des valeurs manquantes. Vous pouvez également recevoir cette erreur si vous utilisez un updateMask dans une requête PATCH et qu'un ou plusieurs champs spécifiés dans le updateMask ne sont pas valides.

Pour résoudre ce problème, consultez l'API GDC Hardware Management afin de vérifier que tous les noms et valeurs de champ sont corrects, y compris la mise en forme. Si vous utilisez une charge utile JSON, vérifiez que toutes les informations requises sont incluses dans la charge utile.

Erreur : 401 UNAUTHENTICATED

Si vous recevez un code d'erreur 401 avec un état UNAUTHENTICATED en réponse à votre appel d'API, vérifiez votre configuration d'authentification. Pour en savoir plus, consultez la page Configurer les identifiants par défaut de l'application.

Erreur : 403 PERMISSION_DENIED

Si vous recevez un code d'erreur 403 avec un état PERMISSION_DENIED en réponse à votre appel d'API, vérifiez si le compte de service utilisé pour effectuer l'appel d'API dispose des privilèges suffisants pour accéder aux objets et ressources cibles. Vérifiez également que les identifiants sont corrects et qu'ils n'ont pas expiré.

Erreur : 404 NOT_FOUND

Si vous recevez un code d'erreur 404 avec un état NOT_FOUND en réponse à votre appel d'API, vérifiez que les noms et le chemin d'accès des ressources spécifiés dans votre appel d'API sont valides. Consultez l'API GDC Hardware Management pour vérifier que l'URL de votre requête est correctement structurée et que tous les champs inclus dans l'URL sont valides.

Étape suivante