第 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 从 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 组件提供了一个编配层,用于跟踪构建请求并确保 Build Executor (OpenShift/K8s 集群)将针对每个请求执行。每个构建都由一个 Kubernetes 作业处理,它启动一个小型虚拟机来完全隔离并包含镜像构建过程。这样可确保容器构建不会影响彼此或底层构建系统。可以配置多个可执行文件,以确保即使在出现基础架构故障时也执行构建。如果 Red Hat Quay 检测到某个 Executor 很难,Red Hat Quay 会自动将构建发送到其他 Executor。

注意

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

6.1.1. 构建管理器

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

6.1.2. 构建 worker 的 control plane

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

6.1.3. 编配器

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

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat