Help us learn about your current experience with the documentation. Take the survey.
辅助运行器
- Tier: 专业版, 旗舰版
- Offering: GitLab 自管版, GitLab 专属版
通过辅助站点的 Geo 代理,可以在辅助站点上注册一个 gitlab-runner。这可以分担主实例的负载。
在流水线第一阶段启动的作业,其 Git clone 请求几乎总是会被转发到主站点。这是因为这些克隆操作通常发生在辅助站点复制并验证 Git 数据之前。后续阶段也不能保证由辅助站点提供服务,例如,如果 Git 变更很大、带宽很小或流水线阶段很短。在大多数情况下,流水线的后续阶段会从辅助站点提供 Git 数据。议题 446176 提出了一项增强功能,旨在提高第一阶段克隆请求由辅助站点提供服务的可能性。
结合具有位置感知功能的公共 URL(统一 URL)使用辅助运行器
- Offering: GitLab 自管版
启用功能标志后,使用位置感知 DNS 无需额外配置即可工作。在与辅助站点相同的位置安装并注册运行器后,它会自动与最近的站点通信,并且仅在辅助站点数据过期时才代理到主站点。
使用独立的 URL 配置辅助运行器
使用独立的辅助 URL 时,运行器应按以下方式配置:
- 使用辅助站点的
external_url进行注册。 - 配置
clone_url为辅助实例的external_url。
使用辅助运行器处理计划性故障转移
执行计划性故障转移时,辅助运行器会尝试继续与其本地实例通信。这会导致运行器容量下降,可能需要对此情况加以考虑。
结合具有位置感知功能的公共 URL
- Offering: GitLab 自管版
使用位置感知 DNS 时,所有运行器都会自动连接到最近的 Geo 站点。
当故障转移到新的主站点时:
- 当旧的主站点仍在 DNS 记录中时,任何先前连接到旧主站点的运行器仍会尝试从旧主站点获取作业。如果旧主站点无法访问,运行器会检测到这一点,并在实例恢复后,停止请求很长一段时间。
- 如果您有多个辅助节点,在初始故障转移后,其余的辅助节点将处于不健康状态,直到它们与新主站点完成复制。连接到这些节点的运行器将无法进行签到,它们的健康检查机制也会被触发。
- 如果您从 Geo DNS 条目中移除任何不健康的节点,运行器会选择下一个最近的实例。根据您的架构,这可能不是您希望的结果,因为这可能会使您处于降级状态的站点不堪重负。
为缓解这些问题,您可以暂停或关闭部分运行器,直到站点完全恢复。
如果您不担心这些问题,则无需执行任何操作。
使用独立的 URL
- 如果您要将旧的主站点恢复服务,可以暂停旧主站点的运行器,直到它重新上线。这可以防止健康检查机制被触发。
- 如果旧的主站点不再恢复,或者您希望避免运行器容量暂时下降,则应将原主站点的运行器重新配置为连接到新的主站点。
- 如果使用了多个辅助站点,在这些辅助站点被复制到新主站点的过程中,其上的运行器应被暂停、关闭或重新配置以连接到新的主站点。
暂停运行器
您必须拥有管理员权限才能使用以下任一方法:
- 通过 管理员 区域:
- 在左侧边栏的底部,选择 管理员。
- 选择 设置 > 运行器。
- 找到您想要暂停的运行器。
- 选择您想要暂停的每个运行器旁边的
pause按钮。 - 故障转移完成后,取消暂停您在上一步中暂停的运行器。
- 使用 运行器 API:
- 获取或创建具有管理员权限的个人访问令牌。
- 获取运行器列表。您可以使用 API来过滤该列表。
- 找到您想要暂停的运行器,并记下它们的
id。 - 按照 API 文档说明暂停每个运行器。
- 故障转移完成后,使用 API 通过设置
paused=false来取消暂停运行器列表。