Acerca del reemplazo de nodos de clúster
La topología de clúster de GitHub Enterprise Server proporciona escalado horizontal para empresas con decenas de miles de desarrolladores. GitHub recomienda la agrupación en clústeres si un único nodo principal experimentara regularmente el agotamiento de recursos. La agrupación en clústeres conlleva una planeación cuidadosa y una sobrecarga administrativa adicional. Para obtener más información, vea «Acerca de las agrupaciones».
Puedes reemplazar un nodo funcional en un clúster o puedes reemplazar un nodo que ha producido un error inesperado.
Advertencia: Para evitar conflictos, el nodo de reemplazo debe usar un nombre de host que no se haya usado antes en el clúster.
Reemplazar un nodo funcional
-
Aprovisione e instale GitHub Enterprise Server con un nombre de host único en el nodo de reemplazo.
-
Mediante el shell administrativo o DHCP, configure solo la dirección IP del nodo de reemplazo. No configures los otros parámetros.
-
Para agregar el nodo de reemplazo recién aprovisionado, en cualquier nodo,
cluster.conf
para quitar el nodo con error y agregar el de reemplazo. Por ejemplo, este archivocluster.conf
modificado reemplazaghe-data-node-3
por el nodo recién aprovisionado,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
-
Desde el shell administrativo del nodo con el valor
cluster.conf
modificado, ejecuteghe-cluster-config-init
. Esto iniciará el nodo recién agregado en la agrupación. -
En el mismo nodo, ejecute
ghe-cluster-config-apply
. Esto validará el archivo de configuración, lo copiará en cada nodo del clúster y configurará cada nodo según el archivocluster.conf
modificado. -
Si estás desconectando un nodo que proporciona servicios de datos, como
git-server
,pages-server
ostorage-server
, evacua el nodo. Para obtener más información, vea «Evacuación de un nodo de clúster que ejecuta servicios de datos». -
Para marcar el nodo con errores sin conexión, en cualquier nodo, modifique el archivo de configuración del clúster (
cluster.conf
) en la sección del nodo correspondiente para incluir el textooffline = true
.Por ejemplo, este valor
cluster.conf
modificado marcará el nodoghe-data-node-3
como sin conexión:[cluster "ghe-data-node-3"] hostname = ghe-data-node-3 offline = true ipv4 = 192.168.0.6 # ipv6 = fd12:3456:789a:1::6
-
Desde el shell administrativo del nodo donde ha modificado
cluster.conf
, ejecuteghe-cluster-config-apply
. Esto validará el archivo de configuración, lo copiará en cada nodo de la agrupación y marcará el nodo fuera de línea. -
Si va a reemplazar el nodo principal de MySQL o Redis, en
cluster.conf
, modifique el valormysql-master
oredis-master
por el nombre del nodo de reemplazo.Por ejemplo, en este archivo
cluster.conf
modificado se especifica un nodo de clúster recién aprovisionado,ghe-replacement-data-node-1
como nodo principal de MySQL y Redis:mysql-master = ghe-replacement-data-node-1 redis-master = ghe-replacement-data-node-1
Reemplazar un nodo en una emergencia
-
Aprovisione e instale GitHub Enterprise Server con un nombre de host único en el nodo de reemplazo.
-
Mediante el shell administrativo o DHCP, configure solo la dirección IP del nodo de reemplazo. No configures los otros parámetros.
-
Para marcar el nodo con errores sin conexión, en cualquier nodo, modifique el archivo de configuración del clúster (
cluster.conf
) en la sección del nodo correspondiente para incluir el textooffline = true
.Por ejemplo, este valor
cluster.conf
modificado marcará el nodoghe-data-node-3
como sin conexión:[cluster "ghe-data-node-3"] hostname = ghe-data-node-3 offline = true ipv4 = 192.168.0.6 # ipv6 = fd12:3456:789a:1::6
-
Desde el shell administrativo del nodo donde ha modificado
cluster.conf
, ejecuteghe-cluster-config-apply
. Esto validará el archivo de configuración, lo copiará en cada nodo de la agrupación y marcará el nodo fuera de línea. -
Para agregar el nodo de reemplazo recién aprovisionado, en cualquier nodo,
cluster.conf
para quitar el nodo con error y agregar el de reemplazo. Por ejemplo, este archivocluster.conf
modificado reemplazaghe-data-node-3
por el nodo recién aprovisionado,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
-
Si va a reemplazar el nodo principal de MySQL o Redis, en
cluster.conf
, modifique el valormysql-master
oredis-master
por el nombre del nodo de reemplazo.Por ejemplo, en este archivo
cluster.conf
modificado se especifica un nodo de clúster recién aprovisionado,ghe-replacement-data-node-1
como nodo principal de MySQL y Redis:mysql-master = ghe-replacement-data-node-1 redis-master = ghe-replacement-data-node-1
-
Desde el shell administrativo del nodo con el valor
cluster.conf
modificado, ejecuteghe-cluster-config-init
. Esto iniciará el nodo recién agregado en la agrupación. -
En el mismo nodo, ejecute
ghe-cluster-config-apply
. Esto validará el archivo de configuración, lo copiará en cada nodo del clúster y configurará cada nodo según el archivocluster.conf
modificado. -
Si estás desconectando un nodo que proporciona servicios de datos, como
git-server
,pages-server
ostorage-server
, evacua el nodo. Para obtener más información, vea «Evacuación de un nodo de clúster que ejecuta servicios de datos».