You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenShift沙箱创建DeploymentConfig报错及镜像使用咨询

问题解答

关于报错与镜像可用性的判断

这个报错不完全等同于镜像image-registry.openshift-image-registry.svc:5000/openshift/mysql:8.0-el8不可用,核心原因是OpenShift对DeploymentConfig做镜像策略校验时,找不到该对象关联的可用镜像列表。可能的触发场景包括:

  • openshift命名空间下的mysql镜像流中,不存在8.0-el8这个标签
  • 目标镜像流本身不存在
  • 当前用户无权限访问openshift命名空间下的镜像流

你可以通过以下命令直接验证openshift命名空间下的MySQL镜像流情况:

oc get imagestreams -n openshift | grep mysql

如果输出里没有8.0-el8相关记录,就说明这个标签的镜像确实不在OpenShift内部Registry的openshift公共命名空间里。

registry.redhat.io需认证时,使用OpenShift Registry可用镜像的步骤

由于registry.redhat.io需要Red Hat账号认证才能拉取镜像,你可以按以下步骤操作:

1. 创建registry.redhat.io的拉取密钥

用你的Red Hat账号生成Docker拉取密钥,在当前项目中创建Secret:

oc create secret docker-registry rh-registry \
  --docker-server=registry.redhat.io \
  --docker-username=<你的Red Hat账号> \
  --docker-password=<你的Red Hat密码> \
  --docker-email=<你的邮箱>

2. 关联密钥到服务账户

让默认服务账户拥有拉取该镜像的权限:

oc secrets link default rh-registry --for=pull

3. 方式一:直接修改DeploymentConfig的镜像引用

将DeploymentConfig中的镜像字段直接替换为registry.redhat.io上的官方MySQL镜像,示例:

spec:
  template:
    spec:
      containers:
      - image: registry.redhat.io/rhel8/mysql-80:8.0-el8
        # 其他容器配置...

4. 方式二:创建自定义镜像流并同步外部镜像

如果想通过OpenShift内部Registry引用镜像,可以创建自己的ImageStream同步registry.redhat.io的镜像:

apiVersion: image.openshift.io/v1
kind: ImageStream
metadata:
  name: mysql
spec:
  tags:
  - name: 8.0-el8
    from:
      kind: DockerImage
      name: registry.redhat.io/rhel8/mysql-80:8.0-el8
    importPolicy:
      insecure: false
    referencePolicy:
      type: Local

执行oc apply -f <上述yaml文件名>创建镜像流后,DeploymentConfig中的镜像可改为:

image: image-registry.openshift-image-registry.svc:5000/<你的项目名>/mysql:8.0-el8

内容的提问来源于stack exchange,提问作者Claudia Martins

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.09 17:12:38