关于 GitHub Enterprise Server 群集的初始化
若要在环境中部署 GitHub Enterprise Server 群集,必须安装 GitHub Enterprise Server,上传已启用群集的许可证,配置第一个节点,并使用配置文件初始化节点。
Note
GitHub Enterprise Server 群集必须通过 HTTPS 进行配置。
安装 GitHub Enterprise Server
开始设置群集时,首先在每个节点的虚拟机 (VM) 上安装 GitHub Enterprise Server 设备,然后配置 IP 地址。
- 在每个集群节点上,提供并安装 GitHub Enterprise Server。 有关详细信息,请参阅“设置 GitHub Enterprise Server 实例”。
- 使用管理 shell 或 DHCP,仅配置每个节点的 IP 地址。 不要配置任何其他设置。
配置第一个节点
在充当主 MySQL 节点的节点上,安装 GitHub Enterprise Server 许可证。
- 连接到将在
cluster.conf
中指定为 MySQL 主要节点的节点。 有关详细信息,请参阅“初始化集群”。 - 在 Web 浏览器中,访问
https://<ip address>:8443/setup/
。 - 在提示时上传许可文件并设置管理控制台密码。 有关详细信息,请参阅“管理 GitHub Enterprise 的许可证”。
- 在 管理控制台 中,配置并保存所需的设置。
- 实例将自动重启。
初始化集群
若要初始化群集,需要群集配置文件 (cluster.conf
)。 有关详细信息,请参阅“初始化集群”。
- 从配置的第一个节点开始,运行
ghe-cluster-config-init
。 如果集群配置文件中存在未配置的节点,此操作会初始化集群。 - 运行
ghe-cluster-config-apply
。 这将验证cluster.conf
文件、将配置应用于每个节点文件,并调出每个节点上已配置的服务。
若要检查正在运行的群集的状态,请使用 ghe-cluster-status
命令。
关于集群配置文件
群集配置文件 (cluster.conf
) 会定义群集中的节点及其运行的服务。
有关详细信息,请参阅“关于集群节点”。
此示例 cluster.conf
定义具有 11 个节点的群集。
- 名为
ghes-front-end-node-\*
的两个节点运行负责响应客户端请求的服务。 - 名为
ghes-database-node-\*
的三个节点运行负责存储、检索和复制数据库数据的服务。 - 名为
ghes-search-node-\*
的三个节点运行负责搜索功能的服务。 - 名为
ghes-storage-node-\*
的三个节点运行负责存储、检索和复制数据的服务。
必须为每个节点选择有效的唯一主机名和 IPv4 地址。 为了确保节点可以在本地为彼此解析,GitHub Enterprise Server 会将每个节点的主机名记录添加到各节点上的 /etc/hosts
。
- 有关 GitHub Enterprise Server 有效主机名的详细信息,请参阅“为实例配置主机名”。
- 每个 IPv4 地址都必须为专用网络上的地址。 请参阅 IETF 网站上的 RFC 1918。
通过 mysql-server
和 mysql-master
指定你配置为 MySQL 主要节点的第一个集群节点。
[cluster]
mysql-master = ghes-database-node-1
redis-master = ghes-database-node-1
primary-datacenter = primary
[cluster "ghes-front-end-node-1"]
hostname = ghes-front-end-node-1
ipv4 = 192.168.0.2
# ipv6 = fd12:3456:789a:1::2
consul-datacenter = primary
datacenter = primary
web-server = true
job-server = true
memcache-server = true
[cluster "ghes-front-end-node-2"]
hostname = ghes-front-end-node-2
ipv4 = 192.168.0.3
# ipv6 = fd12:3456:789a:1::3
consul-datacenter = primary
datacenter = primary
web-server = true
job-server = true
memcache-server = true
[cluster "ghes-database-node-1"]
hostname = ghes-database-node-1
ipv4 = 192.168.0.4
# ipv6 = fd12:3456:789a:1::4
consul-datacenter = primary
datacenter = primary
consul-server = true
mysql-server = true
redis-server = true
[cluster "ghes-database-node-2"]
hostname = ghes-database-node-2
ipv4 = 192.168.0.5
# ipv6 = fd12:3456:789a:1::5
consul-datacenter = primary
datacenter = primary
consul-server = true
mysql-server = true
redis-server = true
[cluster "ghes-database-node-3"]
hostname = ghes-database-node-3
ipv4 = 192.168.0.6
# ipv6 = fd12:3456:789a:1::6
consul-datacenter = primary
datacenter = primary
consul-server = true
mysql-server = true
redis-server = true
[cluster "ghes-search-node-1"]
hostname = ghes-search-node-1
ipv4 = 192.168.0.7
# ipv6 = fd12:3456:789a:1::7
consul-datacenter = primary
datacenter = primary
elasticsearch-server = true
[cluster "ghes-search-node-2"]
hostname = ghes-search-node-2
ipv4 = 192.168.0.8
# ipv6 = fd12:3456:789a:1::8
consul-datacenter = primary
datacenter = primary
elasticsearch-server = true
[cluster "ghes-search-node-3"]
hostname = ghes-search-node-3
ipv4 = 192.168.0.9
# ipv6 = fd12:3456:789a:1::9
consul-datacenter = primary
datacenter = primary
elasticsearch-server = true
[cluster "ghes-storage-node-1"]
hostname = ghes-storage-node-1
ipv4 = 192.168.0.10
# ipv6 = fd12:3456:789a:1::10
consul-datacenter = primary
datacenter = primary
git-server = true
pages-server = true
storage-server = true
metrics-server = true
[cluster "ghes-storage-node-2"]
hostname = ghes-storage-node-2
ipv4 = 192.168.0.11
# ipv6 = fd12:3456:789a:1::11
consul-datacenter = primary
datacenter = primary
git-server = true
pages-server = true
storage-server = true
metrics-server = true
[cluster "ghes-storage-node-3"]
hostname = ghes-storage-node-3
ipv4 = 192.168.0.12
# ipv6 = fd12:3456:789a:1::12
consul-datacenter = primary
datacenter = primary
git-server = true
pages-server = true
storage-server = true
metrics-server = true
在配置的第一个节点上创建文件 /data/user/common/cluster.conf
。 例如,使用 vim
:
ghe-data-node-1:~$ sudo vim /data/user/common/cluster.conf