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 功能可防止 Build 节点在 quay-builder
服务完成后或失败后关闭。它还可防止 Build manager 通过终止 EC2 实例或删除 Kubernetes 作业来清理实例。这允许调试 Builder 节点问题。
不应在生产环境中设置调试。生命周期服务仍然存在;例如,实例在大约 2 小时后仍然关闭。发生这种情况时,EC2 实例将被终止,Kubernetes 作业已完成。
启用调试也会影响 ALLOWED_WORKER_COUNT
,因为未终止的实例和作业仍计入正在运行的 worker 的总数。因此,如果达到 ALLOWED_WORKER_COUNT
,则必须手动删除现有的 Builder worker,才能调度新的构建。
设置 DEBUG 也会影响 ALLOWED_WORKER_COUNT
,因为未确定的实例/作业仍会计入正在运行的 worker 总数。这意味着,如果达到 ALLOWED_WORKER_COUNT
,则需要手动删除现有的构建程序,才能调度新的构建。
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