在openshift集群中提升图像



我正试图弄清楚,如果图像更改触发器可以基于对不同OpenShift集群中图像的更新而触发。

例如:如果我有一个集群non-prodprodcluster,我是否可以在集群prod中配置一个带有图像更改触发器的部署,该图像来自集群non-prod的图像注册表?

我在这里遵循了文档:

  1. https://dzone.com/articles/pulling-images-from-external-container-registry-to
  2. https://docs.openshift.com/container-platform/4.5/openshift_images/managing_images/using-image-pull-secrets.html

基于上述文件,

  1. 我在prod Cluster中创建了docker注册表机密,docker密码=非prod/project机密的默认令牌值。使用的语法:

oc create secret docker-registry non-prod-registry-secret --namespace <<prod-namespace>> --docker-server non-prod-image-registry-external-route --docker-username serviceaccount --docker-password <<base-64-default-token-value>> --docker-email a@b.c

  1. 还将构建器、部署器和默认SA与上面创建的新机密链接起来。

  2. 我还在prod集群中创建图像流,如下所示:

oc import-image my-image-name --from=non-prod-image-registry-external-route/project/nonprodimage:latest --confirm --scheduled=true --dry-run=false -n prod-namespace

imagestream已在prod集群中成功创建,并且引用了prod命名空间中最新的sha:xxx标识符。

但是,当在上面的图像流上通过oc new-app my-image-name:latest --name mynewapp创建部署时,它会生成ImagePullBAckOff。以下是确切的错误消息:

未能提取图像";non-prod映像注册表外部路由/no-prod名称空间/nopodimage:shaxxx":rpc错误:code=未知desc=ping docker注册表非产品映像注册表外部路由时出错:Gethttps://non-prod-image-registry-external-route/v2/:x509:由未知授权机构签署的证书

我的设置遵循类似的过程。由于我们的组织需要定期重置密码,因此基于我的凭据创建docker注册表密钥不是一个好的解决方案。

相反,我们在非prod环境中创建了一个专用的服务帐户,删除了相关的docker配置,并创建了";形象推广";在舞台和产品环境中基于它的秘密。

我唯一的评论是基于你的帖子和错误消息:

x509: certificate signed by unknown authority

是使用不安全的子命令选项:

--insecure=false: If true, allow importing from registries that have invalid HTTPS certificates or are hosted via HTTP. This flag will take precedence over the insecure annotation.

最新更新