Skip to main content

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

创建高可用性副本

在主动/被动配置中,副本设备是主设备的冗余副本。 如果主设备发生故障,高可用性模式允许副本作为主设备运行,从而最大限度地减少服务中断。

注意: 允许 GitHub Enterprise Server 使用最多 8 种高可用性副本(被动和主动/地理副本)。

创建高可用性副本

  1. 在所需平台上设置新的 GitHub Enterprise Server 设备。 副本设备应镜像主设备的 CPU、RAM 和存储设置。 建议您在独立环境中安装副本设备。 底层硬件、软件和网络组件应与主设备的相应部分隔离。 如果要使用云提供商,请使用单独的区域或分区。 更多信息请参阅“设置 GitHub Enterprise Server 实例”。

  2. 确保主设备和新的副本设备可以通过端口 122/TCP 和 1194/UDP 相互通信。 更多信息请参阅“网络端口”。

  3. 在浏览器中,导航到新副本设备的 IP 地址并上� 您的 GitHub Enterprise 许可。

  4. 设置与主设备密� �匹配的管理员密� �,然后继续。

  5. 单击 Configure as Replica包含用于将新实例配置为副本的链接的安装选项

  6. 在“Add new SSH key”下,输入 SSH 密钥。 添�  SSH 密钥

  7. 单击 Add key(添� 密钥)

  8. 使用 SSH 连接到副本设备的 IP 地址。

    $ ssh -p 122 admin@REPLICA IP
  9. 要为副本生成密钥对,请使用包含主设备 IP 地址的 ghe-repl-setup 命令,并复制该命令返回的公钥。

    $ ghe-repl-setup PRIMARY IP
  10. 要将公钥添� 到主设备上的授权密钥列表,请浏览到 https://PRIMARY-HOSTNAME/setup/settings,然后将您从副本复制的密钥添� 到列表中。

  11. 要验证与主设备的连接并为新副本启用副本模式,请再次运行 ghe-repl-setup

    $ ghe-repl-setup PRIMARY IP
  12. 要开始复制数据存储,请使用 ghe-repl-start 命令。

    $ ghe-repl-start

    警告: ghe-repl-start 会导致主要服务器短暂中断,期间用户可能会看到内部服务器错误。 为提供更简便的消息,请在副本节点上运行 ghe-repl-start 之前,先在主要节点上运行 ghe-maintenance -s,使副本置于维护模式。 在复制开始后,使用 ghe-maintenance -u 禁用维护模式。 当主节点处于维护模式时,Git 复制将不会继续进行。

  13. 要验证各个数据存储复制通道的状态,请使用 ghe-repl-status 命令。

    $ ghe-repl-status

创建 Geo-replication 副本

此示例配置使用一个主设备和两个副本,它们位于三个不同的地理区域。 由于三个节点可以位于不同网络中,要求所有节点均可从其他所有节点到达。 必需的管理端口至少应向其他所有节点开放。 有关端口要求的更多信息,请参阅“网络端口”。

  1. 在第一个副本上运行 ghe-repl-setup,采用与创建� �准双节点配置相同的方式创建第一个副本。

    (replica1)$ ghe-repl-setup PRIMARY IP
    (replica1)$ ghe-repl-start
  2. 创建第二个副本并使用 ghe-repl-setup --add 命令。 --add � �志可防止其覆盖现有的复制配置,并将新副本添� 到配置中。

    (replica2)$ ghe-repl-setup --add PRIMARY IP
    (replica2)$ ghe-repl-start
  3. 默认情况下,副本被配置到同一个数据中心,现在将尝试从同一个数据中心中的现有节点播种。 为数据中心选项设置不同的值,通过这种方式为不同的数据中心配置副本。 可以随意设定特定值,只要数值彼此不同即可。 在每个节点上运行 ghe-repl-node 命令并指定数据中心。

    在主设备上:

    (primary)$ ghe-repl-node --datacenter [PRIMARY DC NAME]

    在第一个副本上:

    (replica1)$ ghe-repl-node --datacenter [FIRST REPLICA DC NAME]

    在第二个副本上:

    (replica2)$ ghe-repl-node --datacenter [SECOND REPLICA DC NAME]

    提示:您可以同时设置 --datacenter--activity 选项。

  4. 活动副本节点将存储设备数据的副本并为最终用户请求提供服务。 非活动节点将存储设备数据的副本,但� 法为最终用户请求提供服务。 使用 --active � �志启用活动模式,或使用 --inactive � �志启用非活动模式。

    在第一个副本上:

    (replica1)$ ghe-repl-node --active

    在第二个副本上:

    (replica2)$ ghe-repl-node --active
  5. 要应用配置,请在主设备上使用 ghe-config-apply 命令。

    (primary)$ ghe-config-apply

为 Geo-replication 配置 DNS

使用主节点和副本节点的 IP 地址配置 Geo DNS。 您还可以为主节点(例如 primary.github.example.com)创建 DNS CNAME,以通过 SSH 访问主节点或通过 backup-utils 备份主节点。

要进行测试,您可以将条目添� 到本地工作站的 hosts 文件(如 /etc/hosts)。 这些示例条目会将 HOSTNAME 的请求解析到 replica2。 您可以注释不同的行,以特定主机为目� �。

# <primary IP>     <em>HOSTNAME</em>
# <replica1 IP>    <em>HOSTNAME</em>
<replica2 IP>    <em>HOSTNAME</em>

延伸阅读