关于 GitHub Enterprise Server 群集节点
GitHub Enterprise Server 群集中的每个节点都是一个运行 GitHub Enterprise Server 软件的虚拟机 (VM)。 在部署群集之前,可以查看硬件要求、所需的服务和设计建议。
注意: GitHub Enterprise Server 群集必须通过 HTTPS 进行配置。
硬件要求
每个节点都必须具有根卷以及单独的数据卷。 这些是最低限度的建议。 根据您的使用情况(例如用户活动和选定的集成),可能需要更多资源。
服务 | 需要的最小内存 | 需要的最小数据卷可用空间 |
---|---|---|
job-server 、memcache-server 、web-server | 14 GB | 1GB |
consul-server 、mysql-server 、redis-server | 14 GB | 10GB |
git-server 、metrics-server 、pages-server 、storage-server | 14 GB | 10GB |
elasticsearch-server | 14 GB | 10GB |
集群需要的服务
GitHub Enterprise Server 由一组服务组成。 在群集中,这些服务在多个节点上运行,实例会在节点间均衡请求。 实例会自动在单独的节点上存储数据的冗余副本。 大多数服务与同一服务的其他实例是对等关系。 这种分布有两个例外情况:mysql-server
和 redis-server
服务,它们通过单个主节点运行,主节点上有一个或多个副本节点。
为获得足够的冗余,请使用下面列出的最少节点来运行每个服务。
注意:你的环境的缩放需求取决于多种因素,包括存储库的大小和数量、用户数量和总体利用率。
群集配置示例
以下示例演示了最小的群集配置,其中包括运行必要服务的 11 个节点。
层 | 服务 | 需要的最少节点 |
---|---|---|
前端 | job-server 、memcache-server 、web-server | 2 |
数据库 | consul-server 、mysql-server 、redis-server | 3 |
存储 | git-server 、metrics-server 、pages-server 、storage-server | 3 |
Search | elasticsearch-server | 3 |
集群设计建议
集群允许组成 GitHub Enterprise Server 的服务彼此独立地进行扩展。 这种灵活性可用于设计和实现适合具有不同可扩展性要求的组织的集群。 例如,某些组织可能需要更多的存储吞吐量来进行大量或频繁的获取,但 Web 服务器的利用率可能相对较低。 其他组织可能由于使用较少的存储资源而具有较高的性能,但需要许多运行 pages-server
或 elasticsearch-server
的节点。 可以实现许多不同的组合。 与您的客户代表合作,确定满足您特定需求的最佳集群配置。
- 在独立硬件上扩展冗余节点。 如果共享 CPU、内存或存储设备,则会降低性能并引发单点故障。 此外,共享网络组件还会降低吞吐量并增加在发生中断时丢失连接的风险。
- 使用快速存储。 通常经过优化存储区域网络 (SAN),可实现最大的空间利用率、可用性和容错能力,而不是绝对的吞吐量。 GitHub Enterprise Server 集群提供冗余和可用性,可在最快的可用存储上发挥最佳性能。 建议使用本地 SSD 存储。