kubernetes配置为私有仓库,比如Harbor的时候,不配置imagePullSecrets,可能会收到这样提示:requested access to the resource is denied

Error response from daemon: pull access denied for xxx repository does not exist or may require 'docker login': denied: requested access to the resource is denied 

这是由于访问私有仓库时是需要凭证的。

Log in to Docker

Docker将私有注册表的密钥存储在$HOME/.dockercfg或者$HOME/.docker/config.json文件中。如果将相同的文件放在下面的搜索路径列表中,则kubelet在拉取图像时会将其用作凭据提供程序。

我们在使用docker login的时候会产生$HOME/.docker/config.json文件

cat ~/.docker/config.json{    "auths": {        "https://index.docker.io/v1/": {            "auth": "c3R...zE2"        }    },       "HttpHeaders": {"User-Agent": "Docker-Client/19.03.12 (linux)"}}

Kubernetes集群使用docker-registry类型的Secret来进行一个容器registry的认证,以获取一个私有镜像。

如果你已经执行了docker login,那么你可以把这个凭证复制到Kubernetes

 kubectl create secret generic regcred      --from-file=.dockerconfigjson=      --type=kubernetes.io/dockerconfigjson

需要注意的是"HttpHeaders"最好去掉

通过在命令行中提供凭据来创建一个Secret

比如创建一个名字叫harbor-reg

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

查看Secret

kubectl get secret harbor-reg -o=yaml

data的数据是经过 base64加密了,以下可以查看解密的数据

kubectl get secret harbor-reg --output="jsonpath={.data..dockerconfigjson}" | base64 --decode

输出类似于以下内容:

{"auths":{"your.private.registry.example.com":{"username":"janedoe","password":"xxxxxxxxxxx","email":"jdoe@example.com","auth":"c3R...zE2"}}}

创建使用私有镜像仓库的secret的pod

pods/private-reg-pod.yaml

apiVersion: v1kind: Podmetadata:  name: private-regspec:  containers:  - name: private-reg-container    image:   imagePullSecrets:  - name: harbor-reg

imagePullSecrets: 这个就是刚才创建的镜像仓库的secrets,添加这个我们就可以私有镜像仓库下载镜像了。

docker 从harbor 拉取镜像慢_kubernetes从Harbor拉取镜像imagePullSecrets如何创建相关推荐

  1. 史上最详细的Docker 镜像的制作-上传-拉取--部署(阿里云)

    Docker 镜像的制作-上传-拉取--部署 一.镜像(images) 1. 什么是镜像? 2. 镜像的组成和用途 (1)Dockerfile (2)scratch (3)一个完整的操作系统需要: 3 ...

  2. Docker系列(二): 搭建docker镜像仓库-Nexus、Harbor

    Docker介绍及环境搭建参考: Docker系列一: docker介绍&&安装(含离线安装) Docker系列(二): 搭建docker镜像仓库-Nexus.Harbor Docke ...

  3. Docker把容器打包成镜像并提交到harbor仓库

    Docker把容器打包成镜像并提交到harbor仓库 如果你想要保存当前容器的状态,就可以通过commit来提交获得一个镜像,就好我们虚拟机的时候创建快照,想要回滚到某一个版本 一.首先创建要给tom ...

  4. 如何拉取k8s镜像_K8s 从懵圈到熟练 – 镜像拉取这件小事

    导读:相比 K8s 集群的其他功能,私有镜像的自动拉取,看起来可能是比较简单的.而镜像拉取失败,大多数情况下都和权限有关.所以,在处理相关问题的时候,我们往往会轻松的说:这问题很简单,肯定是权限问题. ...

  5. 镜像在国外仓库,拉取不了怎么办

    镜像在国外仓库,拉取不了怎么办 #镜像拉取失败 Back-off pulling image "us.gcr.io/k8s-artifacts-prod/ingress-nginx/cont ...

  6. Docker镜像的仓库(Harbor)

    一.简介 1.镜像的仓库 镜像仓库用于存放 Docker镜像 Docker registry提供镜像仓库服务 一个 Docker registry可以包含多个镜像仓库 仓库分为公共镜像仓库与私有镜像仓 ...

  7. SpringCloud项目打包Docker镜像并发布到Harbor仓库

    SpringCloud项目打包Docker镜像并发布到Harbor仓库 1. Docker-compose安装 2. Harbor仓库搭建 3. Docker环境配置 4. 项目配置 1. Docke ...

  8. 如何正确推送镜像到私有仓库Harbor(http方式)

    1 缘起 部署了Harbor之后,就要推送镜像, 为后续K8S拉取镜像做准备. 由于是测试环境,因此使用http方式推送镜像. 但是,推送镜像到Harbor过程中,遇到了一系列问题, 遇到一个解决一个 ...

  9. dashboard 镜像源_kubernetes相关镜像源地址汇总

    #docker使用代理 https://blog.csdn.net/styshoo/article/details/55657714 #docker镜像源 #使用docker官方 docker pul ...

最新文章

  1. RESTful之自动生成接口文档
  2. java native方法体在哪_java中native方法的使用
  3. 深度 | 人工智能全局概览:通用智能的当前困境和未来可能
  4. Apache Hudi x Pulsar Meetup杭州站火爆来袭,实践干货就等你来!
  5. 利用Python对销售额进行预测
  6. [Leedcode][JAVA][第41题][缺失的第一个正数][哈希表][数组]
  7. 今天的你死那去了的飞秋
  8. iOS申请发布证书-图文详解
  9. 安卓7.0海信定制版新增功能
  10. 狂神设计模式笔记-工厂模式
  11. print_r与var_dump
  12. 详解2008年日全食全过程
  13. 如何导入JDBC驱动
  14. 金笛JDMAIL邮件系统办公管理—文件中转站
  15. wincc mysql_Wincc操作数据库SQLSERVER
  16. 数据结构(C#)_排序算法(冒泡排序)
  17. 自定义皮肤,你值得拥有!
  18. 3. 剪辑入门--电影混剪 (1)
  19. java微信公众号图文消息
  20. Consumer接口和Supplier接口

热门文章

  1. win10安装mysql出现请键入 NET HELPMSG 3534 以获得更多的帮助。
  2. 动态修改attr里的多个属性
  3. block的界面间传值的使用
  4. Inflater与findViewById()区别
  5. 全国省份、城市、地区全数据(SQL版与XML版)包括各城市邮编
  6. java is instance of_详谈Java中instanceof和isInstance的区别
  7. (篇八)C语言在母串删子串、输入位置截取子串
  8. html 说明文档样式,通用模板说明文档
  9. 09:向量点积计算【一维数组】
  10. sql limit不接具体数字_SQL汇总函数和分组函数