Skip to main content

Création d’un réplica à haute disponibilité

Dans une configuration active/passive, l’appliance réplica est une copie redondante de l’appliance primaire. Si l’appliance primaire échoue, le mode haute disponibilité permet au réplica d’agir comme appliance principale, ce qui permet une interruption minimale du service.

Note

Un maximum de 8 répliques à haute disponibilité (répliques passives et actives/géo, ainsi que des instances de cache de référentiel) est autorisé pour GitHub Enterprise Server.

Création d’un réplica à haute disponibilité

  1. Configurez une nouvelle appliance GitHub Enterprise Server sur la plateforme de votre choix. L’appliance réplica doit reprendre les paramètres de processeur, de RAM et de stockage de l’appliance principale. Nous vous recommandons d’installer l’appliance réplica dans un environnement indépendant. Les composants matériels, logiciels et réseau sous-jacents doivent être isolés de ceux de l’appliance principale. Si vous avez recours à un fournisseur de cloud, utilisez une région ou une zone distincte. Pour plus d’informations, consultez « Configuration d’une instance GitHub Enterprise Server ».

  2. Vérifiez que la nouvelle appliance peut communiquer avec toutes les autres appliances de cet environnement haute disponibilité sur les ports 122/TCP et 1194/UDP. Pour plus d’informations, consultez « Ports réseau ».

  3. Dans un navigateur, accédez à l’adresse IP de la nouvelle appliance réplica et chargez votre licence GitHub Enterprise.

  4. Définissez un mot de passe administrateur qui correspond au mot de passe de l’appliance principale et continuez.

  5. Cliquez sur Créer un nœud de réplica.

  6. Sous « Ajouter une nouvelle clé SSH », tapez votre clé SSH.

  7. Cliquez sur Ajouter une clé.

  8. Connectez-vous à l’adresse IP de l’appliance réplica avec SSH.

    ssh -p 122 admin@REPLICA_IP
    
  9. Pour générer une paire de clés pour la réplication, utilisez la commande ghe-repl-setup avec l’adresse IP de l’appliance primaire et copiez la clé publique qu’elle renvoie.

    ghe-repl-setup PRIMARY_IP
    
  10. Pour ajouter la clé publique à la liste des clés autorisées sur l’appliance principale, recherchez https://PRIMARY-HOSTNAME/setup/settings et ajoutez à la liste la clé que vous avez copiée à partir du réplica.

  11. Pour vérifier la connexion à l’appliance principale et activer le mode réplica pour le nouveau réplica, réexécutez ghe-repl-setup.

    ghe-repl-setup PRIMARY_IP
    
  12. Pour démarrer la réplication des magasins de données, utilisez la commande ghe-repl-start.

    ghe-repl-start
    

    Warning

    ghe-repl-start provoque une brève interruption sur le serveur principal, pendant laquelle les utilisateurs peuvent voir des erreurs de serveur interne. Pour fournir un message plus convivial, exécutez ghe-maintenance -s sur le nœud principal avant d’exécuter ghe-repl-start sur le nœud de réplica pour mettre l’appliance en mode maintenance. Une fois la réplication démarrée, désactivez le mode maintenance avec ghe-maintenance -u. La réplication Git ne progresse pas tant que le nœud principal est en mode maintenance.

  13. Pour vérifier l’état du canal de réplication de chaque magasin de données, utilisez la commande ghe-repl-status.

    ghe-repl-status
    

Création de réplicas de géoréplication

Cet exemple de configuration utilise une appliance principale et deux réplicas, qui sont situés dans trois régions géographiques différentes. Même si les trois nœuds peuvent se trouver sur des réseaux différents, tous les nœuds doivent être mutuellement accessibles. Au minimum, les ports d’administration nécessaires doivent être ouverts à tous les autres nœuds. Pour plus d’informations sur les ports nécessaires, consultez Ports réseau.

La latence entre les nœuds principaux et réplicas doit être inférieure à 70 millisecondes. Il n'est pas recommandé de configurer un pare-feu entre les réseaux des nœuds. Si la latence est supérieure à 70 millisecondes, nous vous recommandons plutôt de mettre en cache les nœuds de réplica. Pour plus d’informations, consultez « Configuration d’un cache de référentiel ».

  1. Créez le premier réplica comme vous le feriez pour une configuration standard à deux nœuds en exécutant ghe-repl-setup sur le premier réplica.

    (replica1)$ ghe-repl-setup PRIMARY_IP
    (replica1)$ ghe-repl-start
    
  2. Créez un deuxième réplica et utilisez la commande ghe-repl-setup --add. L’indicateur --add l’empêche de remplacer la configuration de réplication existante et ajoute le nouveau réplica à la configuration.

    (replica2)$ ghe-repl-setup --add PRIMARY_IP
    (replica2)$ ghe-repl-start
    
  3. Par défaut, les réplicas sont configurés sur le même centre de données et tenteront désormais d’amorcer à partir d’un nœud existant du même centre de données. Configurez les réplicas pour différents centres de données en définissant une valeur différente pour l’option de centre de données. Vous pouvez indiquer n’importe quelles valeurs du moment qu’elles sont différentes les unes des autres. Exécutez la commande ghe-repl-node sur chaque nœud et spécifiez le centre de données.

    Sur l’appliance principale :

    (primary)$ ghe-repl-node --datacenter [PRIMARY DC NAME]
    

    Sur le premier réplica :

    (replica1)$ ghe-repl-node --datacenter [FIRST REPLICA DC NAME]
    

    Sur le deuxième réplica :

    (replica2)$ ghe-repl-node --datacenter [SECOND REPLICA DC NAME]
    

    Tip

    Vous pouvez définir les options --datacenter et --active options en même temps.

  4. Un nœud réplica actif stocke des copies des données de l’appliance et traite les demandes des utilisateurs finaux. Un nœud inactif stocke des copies des données de l’appliance, mais ne peut pas traiter les demandes des utilisateurs finaux. Activez le mode actif à l’aide de l’indicateur --active ou le mode inactif à l’aide de l’indicateur --inactive.

    Sur le premier réplica :

    (replica1)$ ghe-repl-node --active
    

    Sur le deuxième réplica :

    (replica2)$ ghe-repl-node --active
    
  5. Pour appliquer la configuration, utilisez la commande ghe-config-apply sur l’appliance principale.

    (primary)$ ghe-config-apply
    

Configuration de DNS pour la géoréplication

Configurez le service GeoDNS en utilisant les adresses IP du nœud principal et des nœuds réplicas. Vous pouvez aussi créer un enregistrement CNAME DNS pour le nœud principal (par exemple, primary.github.example.com) pour accéder au nœud principal via SSH ou pour le sauvegarder via backup-utils.

En guise de test, vous pouvez ajouter des entrées au fichier hosts de la station de travail locale (par exemple, /etc/hosts). Ces exemples d’entrées résolvent les demandes de HOSTNAME en replica2. Vous pouvez cibler des hôtes spécifiques en commentant différentes lignes.

# <primary IP>      HOSTNAME
# <replica1 IP>     HOSTNAME
<replica2 IP>     HOSTNAME

Pour aller plus loin