Skip to main content

此版本的 GitHub Enterprise 已停止服务 2022-09-28. 即使针对重大安全问题,也不会发布补丁。 为了获得更好的性能、更高的安全性和新功能,请升级到最新版本的 GitHub Enterprise。 如需升级帮助,请联系 GitHub Enterprise 支持

替换集群节点

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

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

替换功能节点

  1. 在替换节点上使用唯一主机名预配和安装 GitHub Enterprise Server。 1. 使用管理 shell 或 DHCP,仅配置替换节点的 IP 地址。 不要配置任何其他设置。 1. 若要添加新预配的替换节点,可在任何节点上修改 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
    
    1. 从含有经修改 `cluster.conf` 的节点的管理 shell 中,运行 `ghe-cluster-config-init`。 这将初始化集群中新增的节点。 1. 从同一节点中运行 `ghe-cluster-config-apply`。 这将验证配置文件、将其复制到集群中的每个节点以及根据修改的 `cluster.conf` 文件配置每个节点。 1. 如果要让在 cluster.conf 设置了 `git-server = true` 的某个节点离线,请撤出该节点。 有关详细信息,请参阅[撤出群集节点](/enterprise/admin/clustering/evacuating-a-cluster-node)。 1. 若要将失败的节点标记为脱机,请在任何节点上修改相关节点部分中的[群集配置文件](/enterprise/admin/guides/clustering/initializing-the-cluster/#about-the-cluster-configuration-file) (`cluster.conf`),使其包含文本 `offline = true`。

    例如,此修改的 cluster.confghe-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
      
    1. 从修改 `cluster.conf` 的节点的管理 shell 中,运行 `ghe-cluster-config-apply`。 这将验证配置文件、将其复制到集群中的每个节点以及将该节点标记为离线。 1. 如果要替换主 MySQL 或 Redis 节点,请在 `cluster.conf` 中,使用替换节点名称修改 `mysql-master` 或 `redis-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。 1. 使用管理 shell 或 DHCP,仅配置替换节点的 IP 地址。 不要配置任何其他设置。 1. 若要将失败的节点标记为脱机,请在任何节点上修改相关节点部分中的群集配置文件 (cluster.conf),使其包含文本 offline = true

    例如,此修改的 cluster.confghe-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
      
    1. 从修改 `cluster.conf` 的节点的管理 shell 中,运行 `ghe-cluster-config-apply`。 这将验证配置文件、将其复制到集群中的每个节点以及将该节点标记为离线。 1. 若要添加新预配的替换节点,可在任何节点上修改 `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
    
    1. 如果要替换主 MySQL 或 Redis 节点,请在 `cluster.conf` 中,使用替换节点名称修改 `mysql-master` 或 `redis-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. 从含有经修改 `cluster.conf` 的节点的管理 shell 中,运行 `ghe-cluster-config-init`。 这将初始化集群中新增的节点。 1. 从同一节点中运行 `ghe-cluster-config-apply`。 这将验证配置文件、将其复制到集群中的每个节点以及根据修改的 `cluster.conf` 文件配置每个节点。 1. 如果要让在 cluster.conf 设置了 `git-server = true` 的某个节点离线,请撤出该节点。 有关详细信息,请参阅[撤出群集节点](/enterprise/admin/clustering/evacuating-a-cluster-node)。