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
-
Provisione e instale GitHub Enterprise Server com um nome de host exclusivo no nó de substituição.
-
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.
-
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 arquivocluster.conf
modificado substituighe-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
-
No shell administrativo do nó com o
cluster.conf
modificado, executeghe-cluster-config-init
. Isto irá inicializar o nó recém-adicionado no cluster. -
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 arquivocluster.conf
modificado. -
Se você estiver usando um nó offline que fornece serviços de dados, como
git-server
,pages-server
oustorage-server
, evacue o nó. Para obter mais informações, confira "Como evacuar um nó de cluster que executa serviços de dados". -
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 textooffline = 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
-
No shell administrativo do nó em que você modificou
cluster.conf
, executeghe-cluster-config-apply
. Isso irá validar o arquivo de configuração, copiá-lo para cada nó do cluster e marcar o nó offline. -
Se você estiver substituindo o nó MySQL ou Redis principal no
cluster.conf
, modifique o valormysql-master
ouredis-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
-
Provisione e instale GitHub Enterprise Server com um nome de host exclusivo no nó de substituição.
-
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.
-
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 textooffline = 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
-
No shell administrativo do nó em que você modificou
cluster.conf
, executeghe-cluster-config-apply
. Isso irá validar o arquivo de configuração, copiá-lo para cada nó do cluster e marcar o nó offline. -
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 arquivocluster.conf
modificado substituighe-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
-
Se você estiver substituindo o nó MySQL ou Redis principal no
cluster.conf
, modifique o valormysql-master
ouredis-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
-
No shell administrativo do nó com o
cluster.conf
modificado, executeghe-cluster-config-init
. Isto irá inicializar o nó recém-adicionado no cluster. -
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 arquivocluster.conf
modificado. -
Se você estiver usando um nó offline que fornece serviços de dados, como
git-server
,pages-server
oustorage-server
, evacue o nó. Para obter mais informações, confira "Como evacuar um nó de cluster que executa serviços de dados".