【问题标题】:openshift imagestream doesn't track private docker repoopenshift imagestream 不跟踪私有 docker repo
【发布时间】:2017-07-27 15:25:19
【问题描述】:

我有一个定义如下的图像流,其来源为 openshift。当我在 openshift 中创建、导入或更新图像流对象时,它会自动获取 docker repo 中定义的任何标签。当我通过 docker(即docker push <private-repo-host-and-port>/myimage)推送图像时,图像流不会使用 docker 中的新图像进行更新。我必须手动更新图像流或重新导入或重新创建它。此外,我还有一个 openshift 构建设置,它输出到图像流,当构建成功完成时,它会将构建的输出图像推送到私有 docker repo,但除非我重新,否则图像流不会接收到这一点导入或更新或重新创建图像流 - 它不会自动执行。我设置了部署配置以获取映像流的更新,并且它会在映像流更新时触发新的部署,但我必须手动更新映像流。

当基于它的支持私有 Docker 存储库更新时,如何让图像流自动更新?

apiVersion: v1
kind: ImageStream
metadata:
  name: isname
  namespace: mynamespace
  labels:
    deployment-id: master
    name: isname
    namespace: mynamespace
spec:  
  dockerImageRepository: '<private-repo-host-and-port>/myimage'
  tags:
    - name: latest
      from:
        kind: DockerImage
        name: '<private-repo-host-and-port>/myimage:latest'
      importPolicy:
        scheduled: true

如果需要其他配置,请告诉我

【问题讨论】:

  • 对于图像位于外部图像注册表中的情况,这是预期的默认行为。更新映像时立即触发映像触发器仅适用于内部映像注册表中的映像。这就是您在使用oc import-image 时触发的内容,因为它将图像拉入内部注册表。从内存中,有一个设置可以让外部映像注册表每隔一段时间轮询一次以检查更新,但现在无法快速找到它。

标签: image docker openshift openshift-origin


【解决方案1】:

阅读:

6:如何让系统定期导入我的标签?什么时候我们 正在使用外部注册表,我们希望能够 定期重新导入映像以获取最新的安全更新等。 为此,我们将为 oc 标记命令使用 --scheduled 标志,例如 所以:

oc 标签 docker.io/python:3.6.0 python:3.6 --scheduled

这将通知系统这个特定的图像流标签 应定期检查更新。目前,这个时期是 集群范围的设置,默认设置为 15 分钟。

只有指向外部 docker 注册表的 Image Stream Tag 可以 定期检查更新。

要删除定期检查,请重新运行上述命令,但省略 --预定标志。这会将其行为重置为默认值

【讨论】:

  • 感谢您的回复。我注意到的是,如果我有一个内部集成注册表,它最终会接收新图像,但它每 15 分钟轮询一次。如果没有内部注册表,它不会轮询(或者它可能会轮询,但我没有等待 15 分钟)。为简单起见,我想避免使用内部集成注册表,因为我已经可以访问由非我管理的私有存储库:-)。很高兴知道如何增加轮询间隔
  • 我想我找到了 - 在 master-config.yml - scheduleImageImportMinimumIntervalSeconds 默认为 900。我会尝试 30 秒
  • 作为更新,减少 scheduleImageImportMinimumIntervalSeconds 似乎没有任何作用。但是,当我添加集成注册表时,它可以正常工作。我无法推送、拉取或使用注册表,但至少当支持 docker image:tag 更新时,镜像流标签也会更新。
  • 如果您有一个集成注册表,如果设置正确,您应该能够使用docker 登录并推送/拉取它。
  • 我让内部注册表正常工作 - 这有点麻烦,因为我在代理后面,而 openshift 喜欢使用 ips 而不是 fdqns。图像流现在可以工作并自动更新/跟踪 docker repos。如果没有集成注册表,图像流似乎不会更新跟踪任意 docker 存储库。图像流仅在集成注册表存在时更新,即使我没有推送/拉到它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-28
  • 2016-05-15
  • 2018-12-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多