Gérer les ressources dans plusieurs zones

Dans un univers multizone, vous devez gérer vos ressources zonales et mondiales pour assurer une haute disponibilité. Chaque surface, qu'il s'agisse de la console GDC, de la CLI gdcloud, des API ou de Terraform, fournit des mécanismes permettant de gérer correctement vos ressources dans une zone désignée pour les ressources zonales, ou de manière globale pour les ressources compatibles avec le provisionnement global.

Ce document explique comment gérer les ressources dans plusieurs zones.

Passer au contexte global

Gérez vos ressources à l'échelle mondiale en passant au contexte global.

Console GDC

Le contexte global est défini en accédant à l'URL globale, qui suit cette syntaxe :

  https://console.ORG_NAME.SUFFIX

Accédez à l'URL globale pour obtenir une vue globale de vos ressources dans toutes les zones.

gdcloud

L'URL globale est définie avec le paramètre organization_console_url lors de l'initialisation de la configuration par défaut de la CLI gdcloud. Le contexte global est supposé, sauf si vous avez explicitement défini un contexte zonal.

Pour revenir à l'URL globale, procédez comme suit :

  1. Définissez l'URL de la console de votre organisation par défaut sur l'URL globale :

    gdcloud config set core/organization_console_url GLOBAL_URL
    
  2. Connectez-vous au contexte global :

    gdcloud auth login --login-config-cert=CA_CERT
    

    Remplacez CA_CERT par le certificat de l'autorité de certification (CA) installé dans le magasin de certificats de confiance du système. Pour en savoir plus, consultez Configuration des certificats TLS Web.

API

Vous devez définir explicitement le fichier kubeconfig pour le serveur d'API de gestion globale dans vos commandes kubectl lorsque vous gérez ou provisionnez des ressources personnalisées de l'API KRM globale. Exemple :

  kubectl apply -f resource.yaml --kubeconfig GLOBAL_API_SERVER

Vous pouvez définir automatiquement le contexte global de vos appels d'API en définissant votre contexte kubectl sur le serveur d'API global. Pour en savoir plus, consultez Se connecter.

Terraform

Vous devez définir explicitement le serveur d'API de gestion globale dans votre module Terraform et l'initialiser :

  1. Définissez le fichier kubeconfig pour le serveur d'API de gestion globale dans un fichier Terraform de votre module, tel que le fichier main.tf :

    provider "kubernetes" {
      config_path = "GLOBAL_API_SERVER"
    }
    

    Pour savoir comment obtenir le fichier kubeconfig du serveur d'API de gestion globale, consultez Se connecter.

  2. Appliquez le nouveau contexte global à votre module Terraform :

    terraform apply
    

Toutes les actions Terraform suivantes sont appelées dans le contexte global.

Passer à un contexte zonal

Gérez les ressources d'une zone spécifique en passant à un contexte zonal.

Console GDC

Le contexte zonal est défini en accédant à l'URL zonale, qui suit la syntaxe suivante :

  https://console.ORG_NAME.ZONE.SUFFIX

Accédez à l'URL zonale pour afficher les ressources hébergées dans la zone unique.

De nombreuses pages de ressources proposent également des sélecteurs de portée de zone, qui vous permettent de basculer entre les contextes zonaux depuis la page de la console GDC.

Sélectionnez une zone pour afficher les ressources qui y sont présentes.

Sélectionnez votre contexte zonal à partir des mécanismes fournis pour afficher et gérer vos ressources zonales.

gdcloud

Étant donné que le contexte global est configuré par défaut lorsque vous utilisez gdcloud CLI, vous devez définir explicitement votre contexte zonal pour manipuler les ressources zonales. Vous pouvez effectuer cette action de l'une des trois manières suivantes, selon votre workflow préféré :

Pour appliquer l'une de ces approches, procédez comme suit :

Définir la configuration de zone par défaut

  • Définissez la configuration de la zone pour votre instance gdcloud CLI :

    gdcloud config set core/zone ZONE_NAME
    

    Remplacez ZONE_NAME par le nom de la zone à définir pour votre contexte. Pour savoir comment trouver le nom d'une zone, consultez Lister les zones d'un univers.

Définir la configuration des URL zonales

  1. Définissez l'URL de la console d'organisation par défaut sur l'URL zonale :

      gdcloud config set core/organization_console_url ZONAL_URL
    
  2. Connectez-vous à la zone :

      gdcloud auth login --login-config-cert=CA_CERT
    

    Remplacez CA_CERT par le certificat de l'autorité de certification (CA) installé dans le magasin de certificats approuvés du système. Pour en savoir plus, consultez Configuration du certificat TLS Web.

Appliquer l'indicateur --zone

  • Exécutez votre commande gdcloud CLI en incluant l'option --zone. Exemple :

    gdcloud auth print-identity-token --zone=ZONE_NAME
    

    Vous pouvez définir l'option --zone pour n'importe quelle commande compatible. Consultez la documentation de référence de gcloud CLI pour votre commande spécifique afin de vérifier que l'option --zone est disponible.

    Vous pouvez utiliser l'option --zone à partir de n'importe quel contexte global ou zonal.

API

Vous devez définir explicitement le fichier kubeconfig pour le serveur d'API de gestion zonale dans vos commandes kubectl lorsque vous gérez ou provisionnez des ressources personnalisées de l'API KRM zonale. Exemple :

  kubectl apply -f resource.yaml --kubeconfig ZONAL_API_SERVER

Vous pouvez définir automatiquement le contexte zonal de vos appels d'API en définissant le contexte kubectl sur le serveur d'API de gestion de la zone. Pour en savoir plus, consultez Se connecter.

Terraform

Vous devez définir explicitement le serveur de l'API de gestion zonale dans votre module Terraform et l'initialiser :

  1. Définissez le fichier kubeconfig pour le serveur d'API de gestion zonale dans un fichier Terraform de votre module, tel que le fichier main.tf :

    provider "kubernetes" {
      config_path = "ZONAL_API_SERVER"
    }
    

    Pour savoir comment obtenir le fichier kubeconfig du serveur d'API de gestion zonale, consultez Se connecter.

  2. Appliquez le nouveau contexte global à votre module Terraform :

    terraform apply
    

Toutes les actions Terraform ultérieures sont appelées dans le contexte de la zone que vous avez configurée.

Lister les zones d'un univers

Pour lister toutes les zones de votre univers, exécutez la commande suivante :

  gdcloud zones list

La sortie ressemble à ceci :

  METADATA.NAME
  us-east1-a
  us-east1-b
  us-east1-c

Étapes suivantes