openshift imagestream不支持';t轨道私人码头回购
我有一个图像流定义如下与openshift起源。当我在openshift中创建、导入或更新图像流对象时,它将自动拾取docker repo中定义的任何标记。当我通过docker推送图像时(即,openshift imagestream不支持';t轨道私人码头回购,image,docker,openshift,openshift-origin,Image,Docker,Openshift,Openshift Origin,我有一个图像流定义如下与openshift起源。当我在openshift中创建、导入或更新图像流对象时,它将自动拾取docker repo中定义的任何标记。当我通过docker推送图像时(即,docker推送/myimage),图像流不会随docker中的新图像更新。我必须手动更新图像流或重新导入它或重新创建它。此外,我还设置了一个openshift构建,该构建输出到图像流,当构建成功完成时,它会将构建的输出图像推送到私有docker repo,但是图像流不会接收到这个,除非我重新导入、更新或重
docker推送/myimage
),图像流不会随docker中的新图像更新。我必须手动更新图像流或重新导入它或重新创建它。此外,我还设置了一个openshift构建,该构建输出到图像流,当构建成功完成时,它会将构建的输出图像推送到私有docker repo,但是图像流不会接收到这个,除非我重新导入、更新或重新创建图像流——它不会自动执行。我已经设置了部署配置来获取对映像流的更新,并且当映像流更新时它确实会触发新的部署,但是我必须手动更新映像流
当备份私有docker repo基于imagestream进行更新时,如何让imagestream自动更新
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
apiVersion:v1
种类:ImageStream
元数据:
姓名:isname
名称空间:mynamespace
标签:
部署id:master
姓名:isname
名称空间:mynamespace
规格:
dockerImageRepository:“/myimage”
标签:
-姓名:最新
发件人:
种类:DockerImage
名称:'/myimage:latest'
进口政策:
预定:真
让我知道是否需要其他配置,请阅读:
对于图像位于外部图像注册表中的情况,这是预期的默认行为。更新图像时立即触发图像触发器仅适用于内部图像注册表中的图像。这就是当您使用
oc import image
将图像拉入内部注册表时所触发的。内存中有一个设置,用于每隔一段时间轮询外部图像注册表以检查更新,但现在无法快速找到。感谢您的回复。我注意到,如果我有一个内部集成注册表,它最终会接收新的图像,但它每15分钟进行一次民意调查。如果没有内部注册表,它不会进行轮询(或者可能是轮询,但我没有等待15分钟)。为简单起见,我希望避免使用内部集成注册表,因为我已经可以访问非我管理的私有回购:-)。知道如何增加轮询间隔会很好,我想我在master-config.yml-scheduledImageImportMinimumIntervalSeconds默认值为900中找到了它。我将尝试30秒作为更新,减少scheduledImageImportMinimumIntervalSeconds似乎没有任何作用。不管怎样,当我添加了itegrated注册表时,它都能正常工作。我无法推、拉或使用注册表,但至少图像流标记会在备份docker image:标记更新时更新。如果您有集成注册表,如果它设置正确,您应该能够使用docker
登录到它,并推/拉到它。我让内部注册表工作-这有点麻烦,因为我在代理后面,openshift喜欢使用ips而不是FDQN。图像流现在工作并自动更新/跟踪docker repos。如果没有集成注册表,图像流似乎无法更新任意docker repos的轨迹。图像流仅在集成注册表存在的情况下更新,即使im没有推/拉到它。