第 6 章 使用构建 worker 自动构建 Dockerfile


Red Hat Quay 支持在 OpenShift 或 Kubernetes 上使用一组 worker 节点构建 Dockerfile。构建触发器(如 GitHub Webhook)可以配置为在提交新代码时自动构建新版存储库。本文档将指导您使用 Red Hat Quay 安装启用构建,并设置一个或多个 OpenShift/K8s 集群来接受来自 Red Hat Quay 的构建。使用 Red Hat Quay 3.4 时,底层构建管理器已作为 Red Hat Quay 2 从 Python 2 迁移到 Python 3 的一部分进行了彻底重写。因此,构建器节点现在作为 Kubernetes 作业与构建节点动态创建,这些节点在 Red Hat Quay 3.3 及更早版本中持续运行。这大大简化了 Red Hat Quay 管理构建的方式,并提供在每天处理数千个容器镜像构建时所用的相同机制 quay.io。当前在 Red Hat Quay 3.3 下运行静态("企业"构建程序)的客户将需要迁移到基于 Kubernetes 的构建机制。

6.1. 架构概述

Red Hat Quay Build 系统专为可扩展性而设计(因为它用来托管 quay.io 的所有构建)。Red Hat Quay 的 Build Manager 组件提供了一个编配层,用于跟踪构建请求并确保构建执行程序(OpenShift/K8s 集群)将执行每个请求。每个构建都由一个 Kubernetes 作业处理,它会启动一个小型虚拟机来完全隔离并包含镜像构建过程。这样可确保容器构建不会影响相互影响或底层构建系统。可以配置多个可执行文件,以确保即使在基础架构出现故障时也会执行构建。Red Hat Quay 会自动将构建发送到不同的 Executor,如果它检测到有困难。

注意

Red Hat Quay 的上游版本提供了如何配置基于 AWS/EC2 的 Executor 的说明。Red Hat Quay 客户不支持此配置。

6.1.1. 构建管理器

构建管理器负责调度构建的生命周期。需要更新构建队列、构建阶段和运行作业状态的操作由构建管理器处理。

6.1.2. 构建 worker 的 control plane

构建作业在单独的 worker 节点上运行,并调度到单独的 control planes(执行器)。目前,Red Hat Quay 支持在 AWS 和 Kubernetes 上运行作业。构建通过 quay.io/quay/quay-builder 执行。在 AWS 上,构建调度到 EC2 实例。在 k8s 上,构建被调度为作业资源。

6.1.3. 编配器

编配器用于存储当前运行的构建作业的状态,并为构建管理器发布事件以消耗。例如,到期事件。目前,支持的编配器后端是 Redis。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.