6.6. 构建故障排除


由构建管理器启动的构建器实例是临时的。这意味着,他们可以在超时/失败或 control plane(EC2/K8s)收集的垃圾回收时被 Red Hat Quay} 关闭。这意味着,若要获取构建器日志,构建 运行时 需要执行此操作。

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_AUTHORIZED_KEYS 连接到容器中运行的虚拟机:

    $ 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
    • 也可以使用单个 SSH 命令执行第 2-3 步:

      $ 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.