在 运行 任务之前大厅等待很长时间

Concourse pending for long time before running task

我有一个带有任务的 Concourse 管道,该任务使用存储在我们本地 Artifactory 服务器中的 Docker 图像。每次我启动 Pipeline 大约需要 5 分钟,直到任务最终完成 运行。日志如下所示:

我假设 Concourse 以某种方式检查 Docker 图片的更新版本。不幸的是,我没有机会进行调试,因为 Concourse 工作虚拟机上的所有日志文件都没有提供任何可用信息。

我的问题:

  1. 当 Concourse 显示 "preparing build" 并且状态为 "pending".

  2. 时,我怎么可能调试正在发生的事情
  3. 是否有机会避免 Concourse 检查更新版本的 Docker 图片?我用版本 latest 标记了 Docker 图像 - 这可能是个问题吗?

  4. 还有什么办法可以加快速度吗?

这里是我的管道和任务的详细配置:

pipeline.yml:

---
resources:
- name: concourse-image
  type: docker-image
  source:
    repository: OUR_DOMAIN/subpath/concourse
    username: ...
    password: ...
    insecure_registries:
    - OUR_DOMAIN

# ...

jobs:
- name: deploy
  public: true
  plan:
  - get: concourse-image
  - task: create-manifest
    image: concourse-image
    file: concourse/tasks/create-manifest/task.yml
    params:
      # ...

task.yml:

---
platform: linux

inputs:
- name: git
- name: concourse

outputs:
  - name: deployment-manifest

run:
  path: concourse/tasks/create-and-upload-cloud-config/task.sh

出现此问题的原因是我们从内部 Docker 注册表中提取了 Docker 图像,该注册表位于 HTTP 上的 运行只要。 Concourse 尝试使用 HTTPS 拉取图像,大约花了 5 分钟,Concourse 才切换到 HTTP(这就是工作人员向我们展示的 tcpdump)。

将资源配置更改为以下配置解决了问题:

resources:
- name: concourse-image
  type: docker-image
  source:
    repository: OUR_SERVER:80/subpath/concourse
    username: docker-readonly
    password: docker-readonly
    insecure_registries:
    - OUR_SERVER:80

所以基本上是显式添加端口repositoryinsecure_registries