Configurer l'allocation multicluster

Cette page explique comment configurer l'allocation multicluster pour Game Servers. L'allocation multicluster vous permet de demander un GameServer doté d'un état Ready à partir d'un cluster dans un domaine donné, et de récupérer un GameServer dans un état Ready depuis n'importe quel cluster de ce domaine. L'allocation multicluster nécessite une configuration manuelle pour permettre aux clusters de se connecter les uns aux autres ainsi qu'au point de terminaison d'allocation multicluster.

Pour en savoir plus sur les allocations GameServer, consultez le Guide de démarrage rapide Créer un parc Game Server pour obtenir une présentation complète.

Avant de commencer

Avant de commencer, nous vous recommandons de vous familiariser avec les concepts clés de la page Présentation de Game Servers. Assurez-vous également que vous avez également effectué les tâches suivantes :

  • Assurez-vous d'avoir activé l'API des services de jeux.
  • Activer l'API des services de jeux
  • Choisissez une interface système sur laquelle le SDK Cloud est installé, ou utilisez un client API :
  • Cloud Shell

    Pour lancer Cloud Shell, procédez comme suit :

    1. Accédez à Google Cloud Console.

      Google Cloud Console

    2. Dans l'angle supérieur droit de la console, cliquez sur le bouton Activer Cloud Shell :

    Une session Cloud Shell s'ouvre dans un cadre situé en bas de la console. Cette interface système vous permet d'exécuter les commandes gcloud.

    Interface système locale

    Pour installer gcloud, installez le SDK Cloud, qui inclut l'outil de ligne de commande gcloud.

    Vérifiez que vous avez défini le projet par défaut souhaité pour l'outil de ligne de commande gcloud. Sinon, vous devrez spécifier explicitement l'option --project pour chaque commande ultérieurement :

    gcloud config list project
    

    Si non, vous pouvez exécuter la commande suivante pour définir un projet par défaut, en remplaçant project-id par l'ID de projet souhaité :

    gcloud config set project project-id
    

    Exécutez la commande suivante pour vérifier votre version du SDK Google Cloud. Game Servers nécessite la version 306.0.0 ou une version ultérieure du SDK.

    gcloud version
    

    Pour mettre à jour votre installation, exécutez la commande suivante :

    gcloud components update
    

    Bibliothèque cliente

    Google Cloud Game Servers peut être contrôlé par programmation à l'aide d'une bibliothèque cliente. Pour obtenir des instructions sur l'utilisation de la bibliothèque et l'authentification, consultez la page Présentation des bibliothèques clientes.

Configurer le service d'allocation Agones

Pour configurer le service d'allocation Agones et configurer des certificats TLS de serveur valides pour chaque cluster, consultez le guide du service d'allocation Agones.

À l'aide de ce même guide, configurez un certificat client pour chaque cluster qui autorise les connexions au point de terminaison d'allocation multicluster.

Assurez-vous de stocker les certificats dans un emplacement sécurisé, car vous en aurez besoin pour l'authentification de tout système externe utilisant les points de terminaison d'allocation multicluster.

Installer Citadel

Game Servers utilise le projet Citadel pour faciliter les connexions sécurisées entre les clusters. Vous devez donc l'installer sur chaque cluster Google Kubernetes Engine enregistré auprès de Game Servers.

Vous pouvez ignorer cette étape si vous avez déjà installé Istio sur votre cluster Google Kubernetes Engine.

Si vous utilisez Terraform, vous pouvez installer Citadel à l'aide de Terraform. Vous pouvez consulter les exemples de fichiers de configuration pour installer Citadel à l'aide de Terraform sur GitHub.

Pour installer Citadel :

  1. Clonez le dépôt GitHub Istio :

    git clone -b release-1.5 https://github.com/istio/istio.git
    
    cd istio
    
  2. Créez un espace de noms pour Istio :

    kubectl create ns istio-system
    

  3. Copiez et exécutez chacune des commandes suivantes pour générer des fichiers d'installation YAML pour Citadel à partir de modèles Helm d'Itsio :

    helm template install/kubernetes/helm/istio --name istio --namespace istio-system -x charts/security/templates/serviceaccount.yaml > citadel-sa.yaml
    
    helm template install/kubernetes/helm/istio --name istio --namespace istio-system -x charts/security/templates/clusterrole.yaml > citadel-cr.yaml
    
    helm template install/kubernetes/helm/istio --name istio --namespace istio-system -x charts/security/templates/clusterrolebinding.yaml > citadel-crb.yaml
    
    helm template install/kubernetes/helm/istio --name istio --namespace istio-system -x charts/security/templates/deployment.yaml > citadel.yaml
    

  4. Ensuite, exécutez la séquence de commandes suivante pour appliquer au fichier Google Kubernetes Engine les fichiers YAML générés à l'étape précédente :

    kubectl apply -f citadel-sa.yaml
    
    kubectl apply -f citadel-cr.yaml
    
    kubectl apply -f citadel-crb.yaml
    
    kubectl apply -f citadel.yaml
    
  5. Vérifiez que Citadel fonctionne correctement :

    kubectl get pods --namespace=istio-system
    

    Vérifiez que le déploiement Citadel est exécuté dans un seul pod.

Valider l'allocation multicluster

Vérifiez que Game Servers est à l'état prêt dans un cluster de votre domaine après le déploiement de Game Servers.

Pour vérifier que l'allocation multicluster fonctionne correctement, consultez l'exemple d'allocation multicluster.

Tous les points de terminaison de n'importe quel cluster du domaine peuvent désormais être utilisés pour allouer un GameServer à partir de n'importe quel cluster du domaine. Les allocations GameServer sont équilibrées en charge sur tous les clusters du domaine utilisant un schéma à répétition alternée.

Étape suivante