6.6. 构建故障排除


构建管理器启动的构建器实例是临时的。这意味着,它们将在超时/故障时由 Red Hat Quay} 关闭,或者 control plane (EC2/K8s)收集的垃圾箱。这意味着,为了获取构建器日志,在构建 运行时 需要这样做。

6.6.1. DEBUG 配置标志

可以设置 DEBUG 标志,以防止在完成/失败后清理构建器实例。要做到这一点,在所需的 executor 配置中,将 DEBUG 设置为 true。例如:

  EXECUTORS:
    - EXECUTOR: ec2
      DEBUG: true
      ...
    - EXECUTOR: kubernetes
      DEBUG: true
      ...

当设置为 true 时,DEBUG 会在 quay-builder 服务完成后防止构建节点关闭,并阻止构建管理器清理实例(确定 EC2 实例或删除 k8s 作业)。这将允许调试构建器节点问题,不应在生产环境中 设置。生命周期服务仍然存在。例如,实例仍然会在大约 2 小时后(EC2 实例终止,k8s 作业将完成)设置 DEBUG 将影响 ALLOWED_WORKER_COUNT,因为未终止的实例/作业仍会计算到正在运行的 worker 总数。这意味着,如果达到 ALLOWED_WORKER_COUNT,则需要手动删除现有的构建器 worker,才能调度新的构建。

使用以下步骤:

  1. 客户机虚拟机将其 SSH 端口(22)转发到其主机的(容器集)端口 2222。端口将构建器 pod 的端口 2222 转发到 localhost 上的端口。例如

    $ kubectl port-forward <builder pod> 9999:2222
  2. 使用 SSH_AUTHORIZED_KEYS 中的一个密钥,通过 SSH 连接到容器中运行的虚拟机:

    $ ssh -i /path/to/ssh/key/set/in/ssh_authorized_keys -p 9999 core@localhost
  3. 获取 quay-builder 服务日志:

    $ systemctl status quay-builder
    $ journalctl -f -u quay-builder
    • 第 2-3 步也可以在单一 SSH 命令中完成:

      $ ssh -i /path/to/ssh/key/set/in/ssh_authorized_keys -p 9999 core@localhost ‘systemctl status quay-builder’
      $ ssh -i /path/to/ssh/key/set/in/ssh_authorized_keys -p 9999 core@localhost ‘journalctl -f -u quay-builder’
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.