开发者社区 > 云原生 > 微服务 > 正文

Nacos阿里云K8S Deployment中无法拉取到 镜像?

Nacos阿里云K8S Deployment中无法拉取到 nacos/nacos-server:2.3.1 镜像?异常信息为:rpc error: code = Unknown desc = Error response from daemon: manifest for nacos/nacos-server:2.3.1 not found: manifest unknown: manifest unknown?

展开
收起
真的很搞笑 2024-03-28 08:17:20 342 0
4 条回答
写回答
取消 提交回答
  • 这个问题可能是由于阿里云镜像仓库中没有 nacos/nacos-server:2.3.1 这个版本的镜像导致的。你可以尝试以下方法解决这个问题:

    1. 检查镜像版本是否正确。确保你使用的是正确的 nacos/nacos-server 版本号,例如:nacos/nacos-server:2.0.1。

    2. 尝试从其他镜像仓库拉取镜像。你可以在 Docker Hub 或者其他镜像仓库中搜索 nacos/nacos-server,然后使用相应的镜像地址。

    3. 如果你确定需要使用 nacos/nacos-server:2.3.1 这个版本的镜像,可以尝试在本地构建一个镜像并推送到阿里云镜像仓库。具体步骤如下:

      a. 克隆 nacos 仓库:

      git clone https://github.com/alibaba/nacos.git
      

      b. 切换到指定版本:

      cd nacos
      git checkout 2.3.1
      

      c. 构建镜像:

      mvn -Prelease-nacos -Dmaven.test.skip=true clean install -U
      cd distribution/target/nacos-server-2.3.1/nacos
      docker build -t nacos/nacos-server:2.3.1 .
      

      d. 登录阿里云镜像仓库(替换为你的阿里云镜像仓库地址和用户名密码):

      echo "your_password" | docker login --username="your_username" registry.cn-hangzhou.aliyuncs.com
      

      e. 将镜像推送到阿里云镜像仓库:

      docker tag nacos/nacos-server:2.3.1 registry.cn-hangzhou.aliyuncs.com/your_namespace/nacos-server:2.3.1
      docker push registry.cn-hangzhou.aliyuncs.com/your_namespace/nacos-server:2.3.1
      
    4. 更新 K8S Deployment 中的镜像地址为阿里云镜像仓库中的地址。

    2024-03-30 23:15:47
    赞同 1 展开评论 打赏
  • 阿里云大降价~

    这个问题可能是由于阿里云镜像仓库中没有 nacos/nacos-server:2.3.1 镜像导致的。你可以尝试以下方法解决这个问题:

    1. 检查镜像名称和版本是否正确。确保你使用的是正确的镜像名称和版本号。

    2. 尝试从其他镜像仓库拉取 nacos/nacos-server:2.3.1 镜像。你可以在 Docker Hub 或者其他镜像仓库中搜索 nacos/nacos-server,然后选择一个可用的版本进行拉取。

    3. 如果你确定 nacos/nacos-server:2.3.1 镜像在阿里云镜像仓库中是存在的,那么可能是你的阿里云账户没有足够的权限访问该镜像。你需要联系阿里云客服,为你的用户添加相应的权限。

    4. 如果以上方法都无法解决问题,你可以尝试手动构建一个 nacos/nacos-server:2.3.1 镜像,并将其推送到阿里云镜像仓库。具体步骤如下:

      • 克隆 nacos 仓库:git clone https://github.com/alibaba/nacos.git
      • 进入 nacos 目录:cd nacos
      • 切换到 2.3.1 版本:git checkout 2.3.1
      • 构建镜像:docker build -t nacos/nacos-server:2.3.1 .
      • 登录阿里云镜像仓库:docker login --username=<your_username> registry.cn-hangzhou.aliyuncs.com
      • 为镜像添加标签:docker tag nacos/nacos-server:2.3.1 registry.cn-hangzhou.aliyuncs.com/<your_namespace>/nacos-server:2.3.1
      • 推送镜像:docker push registry.cn-hangzhou.aliyuncs.com/<your_namespace>/nacos-server:2.3.1

      注意替换 <your_username><your_namespace> 为你的阿里云账户名和命名空间。

    2024-03-29 17:42:57
    赞同 展开评论 打赏
  • 这个问题可能是由于阿里云镜像仓库中没有 nacos/nacos-server:2.3.1 这个版本的镜像导致的。你可以尝试以下方法解决这个问题:

    1. 检查镜像版本是否正确。确保你使用的是正确的 nacos/nacos-server 版本号,例如:nacos/nacos-server:2.0.1。

    2. 尝试从其他镜像仓库拉取镜像。你可以使用 Docker Hub 或者其他镜像仓库来拉取 nacos/nacos-server 镜像。修改你的 Deployment 配置文件,将镜像地址更改为其他镜像仓库的地址。例如:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nacos
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: nacos
      template:
        metadata:
          labels:
            app: nacos
        spec:
          containers:
          - name: nacos
            image: nacos/nacos-server:2.0.1
            ports:
            - containerPort: 8848
    
    1. 如果问题仍然存在,你可以尝试手动构建并推送 nacos/nacos-server:2.3.1 镜像到阿里云镜像仓库。首先,从 GitHub 上克隆 Nacos 项目:
    git clone https://github.com/alibaba/nacos.git
    

    然后,进入 nacos/docker 目录,修改 Dockerfile 文件,将基础镜像地址更改为阿里云镜像仓库的地址:

    FROM aliyun_registry/nacos/nacos-server:2.3.1
    

    接下来,构建并推送镜像:

    docker build -t aliyun_registry/nacos/nacos-server:2.3.1 .
    docker push aliyun_registry/nacos/nacos-server:2.3.1
    

    最后,更新你的 Deployment 配置文件,将镜像地址更改为阿里云镜像仓库的地址:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: nacos
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: nacos
      template:
        metadata:
          labels:
            app: nacos
        spec:
          containers:
          - name: nacos
            image: aliyun_registry/nacos/nacos-server:2.3.1
            ports:
            - containerPort: 8848
    
    2024-03-28 19:15:09
    赞同 1 展开评论 打赏
  • 将军百战死,壮士十年归!

    当您在阿里云Kubernetes (ACK) 集群中部署Nacos,并且Deployment无法拉取到nacos/nacos-server:2.3.1镜像时,出现manifest unknown: manifest unknown这样的错误信息,通常指向以下几个可能的原因:

    1. 镜像版本不存在
      确保nacos/nacos-server镜像仓库中有2.3.1版本。您可以直接在Docker Hub或其他镜像仓库中查找该版本是否存在。如果不提供这个版本,需要更新Deployment中的镜像版本到可用的版本。

    2. 私有仓库配置
      如果您在使用私有镜像仓库,需确保已正确配置Kubernetes集群访问私有仓库所需的凭据,并在Deployment YAML文件中指定了正确的镜像pull secret。

    3. 镜像拉取策略
      检查Kubernetes Deployment的镜像拉取策略(imagePullPolicy),确保它设置为总是尝试拉取(Always)或如果本地无镜像则拉取(IfNotPresent)。

    4. 阿里云容器镜像服务(ACR)
      如果使用阿里云容器镜像服务(ACR),请确认是否已将Nacos镜像推送到对应的ACR仓库,并且在Kubernetes Deployment中指定了正确的ACR仓库地址和认证信息。

    5. 网络问题或DNS解析
      确认Kubernetes节点能够顺利访问Docker Hub或其他镜像仓库,网络畅通且DNS解析无误。

    解决办法:

    • 更新Deployment YAML文件中的镜像版本到Nacos正式发布的可用版本。
    • 如果使用私有仓库,配置好相应的registry secret并关联到Deployment。
    • 检查并修复任何网络访问问题。

    另外,可以尝试手动在Kubernetes集群内的一个节点上运行docker pull nacos/nacos-server:2.3.1命令,看看是否能成功拉取镜像,以此来排除集群外的因素。如果手动拉取也不成功,则说明是镜像仓库或网络方面的问题。如果手动拉取成功,则重点检查Kubernetes集群内的配置。

    2024-03-28 10:49:09
    赞同 展开评论 打赏

为微服务建设降本增效,为微服务落地保驾护航。

相关电子书

更多
ACK 云原生弹性方案—云原生时代的加速器 立即下载
ACK集群类型选择最佳实践 立即下载
企业运维之云原生和Kubernetes 实战 立即下载

相关镜像