Skip to main content
Publicamos atualizações frequentes em nossa documentação, e a tradução desta página ainda pode estar em andamento. Para obter as informações mais atualizadas, acesse a documentação em inglês.

Substituir um nó de cluster

Para substituir um nó do GitHub Enterprise Server, você deverá marcar os nós afetados offline no arquivo de configuração do cluster (cluster.conf) e adicionar os nós de substituição. Fazer isso pode ser necessário em caso de falha de algum nó ou para adicionar nós com mais recursos a fim de melhorar o desempenho.

Sobre a substituição de nós de cluster

A topologia de cluster para o GitHub Enterprise Server fornece escala horizontal para empresas com dezenas de milhares de desenvolvedores. A GitHub recomenda o clustering se um único nó primário apresentar rotina de esgotamento de recursos. O clustering requer um planejamento cuidadoso e sobrecarga administrativa adicional. Para obter mais informações, confira "Arquitetura de clustering".

Você pode substituir um nó funcional em um cluster ou um nó que falhou inesperadamente.

Aviso: para evitar conflitos, o nó de substituição deve usar um novo nome do host que não tenha sido usado anteriormente no cluster.

Substituir um nó funcional

  1. Provisione e instale GitHub Enterprise Server com um nome de host exclusivo no nó de substituição.

  2. Usando o shell administrativo ou o DHCP, configure apenas o endereço IP do nó de substituição. Não altere nenhuma outra configuração.

  3. Para adicionar o nó de substituição recém-provisionado, em qualquer nó, modifique o arquivo cluster.conf para remover o nó com falha e adicione o nó de substituição. Por exemplo, este arquivo cluster.conf modificado substitui ghe-data-node-3 pelo nó recém-provisionado, ghe-replacement-data-node-3:

    [cluster "ghe-replacement-data-node-3"]
      hostname = ghe-replacement-data-node-3
      ipv4 = 192.168.0.7
      # ipv6 = fd12:3456:789a:1::7
      git-server = true
      pages-server = true
      mysql-server = true
      elasticsearch-server = true
      redis-server = true
      memcache-server = true
      metrics-server = true
      storage-server = true
    
  4. No shell administrativo do nó com o cluster.conf modificado, execute ghe-cluster-config-init. Isto irá inicializar o nó recém-adicionado no cluster.

  5. No mesmo nó, execute ghe-cluster-config-apply. Isso vai validar o arquivo de configuração, copiá-lo para cada nó no cluster e configurar cada nó de acordo com o arquivo cluster.conf modificado.

  6. Se você estiver usando um nó offline que fornece serviços de dados, como git-server, pages-server ou storage-server, evacue o nó. Para obter mais informações, confira "Como evacuar um nó de cluster que executa serviços de dados".

  7. Para marcar o nó com falha offline, em qualquer nó, modifique o arquivo de configuração do cluster (cluster.conf) na seção de nó relevante para incluir o texto offline = true.

    Por exemplo, este cluster.conf modificado marcará o nó ghe-data-node-3 como offline:

      [cluster "ghe-data-node-3"]
      hostname = ghe-data-node-3
      offline = true
      ipv4 = 192.168.0.6
      # ipv6 = fd12:3456:789a:1::6
      
  8. No shell administrativo do nó em que você modificou cluster.conf, execute ghe-cluster-config-apply. Isso irá validar o arquivo de configuração, copiá-lo para cada nó do cluster e marcar o nó offline.

  9. Se você estiver substituindo o nó MySQL ou Redis principal no cluster.conf, modifique o valor mysql-master ou redis-master pelo nome do nó de substituição.

    Por exemplo, esse arquivo cluster.conf modificado especifica um nó de cluster recém-provisionado, ghe-replacement-data-node-1 como o nó do MySQL e e Redis principal:

    mysql-master = ghe-replacement-data-node-1
    redis-master = ghe-replacement-data-node-1
    

Substituir um nó em caso de emergência

  1. Provisione e instale GitHub Enterprise Server com um nome de host exclusivo no nó de substituição.

  2. Usando o shell administrativo ou o DHCP, configure apenas o endereço IP do nó de substituição. Não altere nenhuma outra configuração.

  3. Para marcar o nó com falha offline, em qualquer nó, modifique o arquivo de configuração do cluster (cluster.conf) na seção de nó relevante para incluir o texto offline = true.

    Por exemplo, este cluster.conf modificado marcará o nó ghe-data-node-3 como offline:

      [cluster "ghe-data-node-3"]
      hostname = ghe-data-node-3
      offline = true
      ipv4 = 192.168.0.6
      # ipv6 = fd12:3456:789a:1::6
      
  4. No shell administrativo do nó em que você modificou cluster.conf, execute ghe-cluster-config-apply. Isso irá validar o arquivo de configuração, copiá-lo para cada nó do cluster e marcar o nó offline.

  5. Para adicionar o nó de substituição recém-provisionado, em qualquer nó, modifique o arquivo cluster.conf para remover o nó com falha e adicione o nó de substituição. Por exemplo, este arquivo cluster.conf modificado substitui ghe-data-node-3 pelo nó recém-provisionado, ghe-replacement-data-node-3:

    [cluster "ghe-replacement-data-node-3"]
      hostname = ghe-replacement-data-node-3
      ipv4 = 192.168.0.7
      # ipv6 = fd12:3456:789a:1::7
      git-server = true
      pages-server = true
      mysql-server = true
      elasticsearch-server = true
      redis-server = true
      memcache-server = true
      metrics-server = true
      storage-server = true
    
  6. Se você estiver substituindo o nó MySQL ou Redis principal no cluster.conf, modifique o valor mysql-master ou redis-master pelo nome do nó de substituição.

    Por exemplo, esse arquivo cluster.conf modificado especifica um nó de cluster recém-provisionado, ghe-replacement-data-node-1 como o nó do MySQL e e Redis principal:

    mysql-master = ghe-replacement-data-node-1
    redis-master = ghe-replacement-data-node-1
    
  7. No shell administrativo do nó com o cluster.conf modificado, execute ghe-cluster-config-init. Isto irá inicializar o nó recém-adicionado no cluster.

  8. No mesmo nó, execute ghe-cluster-config-apply. Isso vai validar o arquivo de configuração, copiá-lo para cada nó no cluster e configurar cada nó de acordo com o arquivo cluster.conf modificado.

  9. Se você estiver usando um nó offline que fornece serviços de dados, como git-server, pages-server ou storage-server, evacue o nó. Para obter mais informações, confira "Como evacuar um nó de cluster que executa serviços de dados".