我们经常发布文档更新,此页面的翻译可能仍在进行中。有关最新信息,请访问英文文档。如果此页面上的翻译有问题,请告诉我们

此版本的 GitHub Enterprise 已停止服务 2021-03-02. 即使针对重大安全问题,也不会发布补丁。 要获得更好的性能、改进的安全性和新功能,请升级到 GitHub Enterprise 的最新版本。 如需升级方面的帮助,请联系 GitHub Enterprise 支持

替换集群节点

要替换 GitHub Enterprise Server 节点,必须在集群配置文件 (cluster.conf) 中将受影响的节点标记为离线,然后添加替换节点。 如果节点发生故障,或者添加具有更多资源的节点以提高性能,则可能需要执行此操作。

本文内容

警告:替换节点必须使用先前未在集群中使用的主机名以避免冲突。

替换功能节点

  1. 在替换节点上使用唯一主机名供应和安装 GitHub Enterprise Server

  2. 使用管理 shell 或 DHCP,配置替换节点的 IP 地址。 不要配置任何其他设置。

  3. 要添加新配置的更换节点,在任何节点上,修改 cluster.conf 文件以删除失败的节点并添加更换节点。 例如,下面修改的 cluster.conf 文件会将 ghe-data-node-3 替换为新配置的节点 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. 从含有经修改 cluster.conf 的节点的管理 shell 中,运行 ghe-cluster-config-init。 这将初始化集群中新增的节点。

  5. 从相同的节点,运行 ghe-cluster-config-apply。 这将验证配置文件、将其复制到集群中的每个节点以及根据修改的 cluster.conf 文件配置每个节点。

  6. 如果要让在 cluster.conf 设置了git-server = true 的某个节点离线,请撤出该节点。 更多信息请参阅“Evacuating a cluster node”。

  7. 要将失败的节点标记为离线,在任何节点上修改相关代码部分的群集配置文件 (cluster.conf),以包含文本 offline = true

    例如,下面修改的 cluster.conf 会将 ghe-data-node-3 节点标记为离线:

    [cluster "ghe-data-node-3"]
    hostname = ghe-data-node-3
    offline = true
    ipv4 = 192.168.0.6
    # ipv6 = fd12:3456:789a:1::6
    
  8. 从经修改 cluster.conf 所在节点的管理 shell 中,运行 ghe-cluster-config-init。 这将验证配置文件、将其复制到集群中的每个节点以及将该节点标记为离线。

  9. 如果要替换 MySQL 主节点或 Redis 主节点,请在 cluster.conf 中使用替换节点名称修改 mysql-masterredis-master 值。

    例如,以下修改的 cluster.conf 文件指定新供应的集群节点 ghe-replacement-data-node-1 为 MySQL 和 Redis 主节点:

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

在紧急情况下替换节点

  1. 在替换节点上使用唯一主机名供应和安装 GitHub Enterprise Server

  2. 使用管理 shell 或 DHCP,配置替换节点的 IP 地址。 不要配置任何其他设置。

  3. 要将失败的节点标记为离线,在任何节点上修改相关代码部分的群集配置文件 (cluster.conf),以包含文本 offline = true

    例如,下面修改的 cluster.conf 会将 ghe-data-node-3 节点标记为离线:

    [cluster "ghe-data-node-3"]
    hostname = ghe-data-node-3
    offline = true
    ipv4 = 192.168.0.6
    # ipv6 = fd12:3456:789a:1::6
    
  4. 从经修改 cluster.conf 所在节点的管理 shell 中,运行 ghe-cluster-config-init。 这将验证配置文件、将其复制到集群中的每个节点以及将该节点标记为离线。

  5. 要添加新配置的更换节点,在任何节点上,修改 cluster.conf 文件以删除失败的节点并添加更换节点。 例如,下面修改的 cluster.conf 文件会将 ghe-data-node-3 替换为新配置的节点 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. 如果要替换 MySQL 主节点或 Redis 主节点,请在 cluster.conf 中使用替换节点名称修改 mysql-masterredis-master 值。

    例如,以下修改的 cluster.conf 文件指定新供应的集群节点 ghe-replacement-data-node-1 为 MySQL 和 Redis 主节点:

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

  7. 从含有经修改 cluster.conf 的节点的管理 shell 中,运行 ghe-cluster-config-init。 这将初始化集群中新增的节点。

  8. 从相同的节点,运行 ghe-cluster-config-apply。 这将验证配置文件、将其复制到集群中的每个节点以及根据修改的 cluster.conf 文件配置每个节点。

  9. 如果要让在 cluster.conf 设置了git-server = true 的某个节点离线,请撤出该节点。 更多信息请参阅“Evacuating a cluster node”。