11.3. 构建故障排除
Build Manager 启动的 Builder 实例是临时的。这意味着它们由 Red Hat Quay 在超时或失败时关闭,或由 control plane (EC2/K8s)收集垃圾回收。要获取构建日志,必须在构建运行时进行此操作。
11.3.1. DEBUG 配置标志
DEBUG
标志可以设置为 true
,以防止在完成或失败后清理 Builder 实例。例如:
EXECUTORS: - EXECUTOR: ec2 DEBUG: true ... - EXECUTOR: kubernetes DEBUG: true ...
当设置为 true
时,debug 功能可防止构建节点在 quay-builder
服务完成或失败后关闭。它还可防止构建管理器通过终止 EC2 实例或删除 Kubernetes 作业来清理实例。这允许调试构建器节点问题。
不应在产品周期中设置调试。生命周期服务仍然存在;例如,实例仍然会在大约 2 小时后关闭。发生这种情况时,EC2 实例将终止,Kubernetes 作业已完成。
启用 debug 也会影响 ALLOWED_WORKER_COUNT
,因为未确定的实例和作业仍计算为运行 worker 的总数。因此,如果达到 ALLOWED_WORKER_COUNT
,则必须手动删除现有的 Builder worker,才能调度新的构建。
设置 DEBUG 也会影响 ALLOWED_WORKER_COUNT
,因为未确定的实例/作业仍将计数到正在运行的 worker 的总数。这意味着,如果达到 ALLOWED_WORKER_COUNT
,则需要手动删除现有的构建器 worker 才能调度新的构建。
11.3.2. OpenShift Container Platform 和 Kubernetes 构建故障排除
使用以下步骤对 OpenShift Container Platform Kubernetes 构建进行故障排除。
流程
输入以下命令在本地机器和使用 OpenShift Container Platform 集群或 Kubernetes 集群运行的 pod 之间创建端口转发隧道:
$ oc port-forward <builder_pod> 9999:2222
使用指定的 SSH 密钥和端口建立到远程主机的 SSH 连接,例如:
$ ssh -i /path/to/ssh/key/set/in/ssh_authorized_keys -p 9999 core@localhost
输入以下命令来获取
quay-builder
服务日志:$ systemctl status quay-builder
$ journalctl -f -u quay-builder