• k8s使用私有镜像仓库Harbor下载镜像ImagePullBackOff错误拍错


      k8s使用私有镜像仓库Harbor下载镜像时当Pod分配到其中一个节点时无法下载镜像报错ImagePullBackOff

       两台node配置一致 docker配置文件中也配置了Harbor信息

     cat /etc/docker/daemon.json 
    {
              "registry-mirrors": ["https://7sl94zzz.mirror.aliyuncs.com"],
              "insecure-registries": ["192.168.1.11","192.168.1.61"]
    }
    

       查看pod描述

    Failed to pull image "192.168.1.11/project/tomcat": rpc error: code = Unknown desc = Error response from daemon: pull access denied for 192.168.1.11/project/tomcat, repository does not exist or may require 'docker login': denied: requested access to the resource is denied
    

       配置的secret配置文件如下

    apiVersion: v1
    kind: Secret
    metadata:
      name: registry-pull-secret
    data:
      .dockerconfigjson: ewoJImF1dGhzIjogewoJCSIxOTIuMTY4LjEuNjEiOiB7CgkJCSJhdXRoIjogIllXUnRhVzQ2U0dGeVltOXlNVEl6TkRVPSIKCQl9Cgl9LAoJIkh0dHBIZWFkZXJzIjogewoJCSJVc2VyLUFnZW50IjogIkRvY2tlci1DbGllbnQvMTkuMDMuNiAobGludXgpIgoJfQp9
    type: kubernetes.io/dockerconfigjson
    

       该秘钥获取方式为在已经登录私有镜像仓库的node使用命令获取

    cat /root/.docker/config.json | base64 -w0
    

       使用yaml文件创建的秘钥在其中一台node没有生效 ,使用命令创建一个secret

    kubectl create secret docker-registry registry-pull-secret --namespace=default     --docker-server=192.168.1.11 --docker-username=admin     --docker-password=Harbor12345 --docker-email=unchch.xt@gmail.com
    

       使用命令创建的格式为

    kubectl create secret docker-registry my-secret --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER
    --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL
    

       其中my-secret为自定义name

      把使用命令创建的secret导出yaml文件进行对比

    kubectl get secret registry-pull-secret -o yaml>>registry-pull-secret.yaml
    

     

       把使用命令创建的秘钥替换则正常

      本次错误其中一台node是可以正常pull镜像的,另外一台node认证错误无法正常pull镜像,使用base64获取的秘钥和使用命令创建获取的秘钥也不相同,本次错误原因未知。

  • 相关阅读:
    PLSQL Developer调试 存储过程和触发器
    oracle 根据汉字返回拼音函数
    Oracle Length 和 Lengthb 函数说明 .(用来判断记录值里是否有中文内容)
    getline()函数
    自编Photoshop简单教程
    Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/ma ven/cli/Maven
    android 动态设置TextView值,例:金额添加
    JavaScript定时调用函数(SetInterval与setTimeout)
    Json数据的序列化与反序列化的三种经常用法介绍
    手动脱FSG壳实战
  • 原文地址:https://www.cnblogs.com/minseo/p/12759763.html
Copyright © 2020-2023  润新知