K8S从私有仓库拉取镜像
通常来讲,我们在通过公共镜像仓库拉取docker镜像的时候,不需要任何的认证操作,但我们在构建了企业的私有镜像以后,就不得不在拉取镜像之前通过用户名密码来完成认证。
在docker单机环境中,我们可以直接在宿主机上执行docker login https://myhub.fdccloud.com
类似这种命令的方式来完成认证。但在通过kubernetes来对docker做相关集群管理时,就不得不在所有的节点机上通过上面那种方式完成认证。这在大规模的应用架构中,是不可取的。
当然,我们有另外一种稍微简便的方法。事实上,在执行docker login https://xxxxx
完成认证的时候,实际是在当前用户的家目录的.docker目录下生成了一个config.json文件。我们查看该文件的内容如下:
{"auths": {"https://myhub.fdccloud.com": {"auth": "xxxx","email": "yanw02@mysoft.com.cn"},}}
这个文件包含了认证信息。所以另一个可行的办法,就是直接将该文件通过自动化的方式,推送到所有节点机的相应目录即可。但在实际的测试中,这种方式推送的节点仍然会偶尔出现认证失败的情况,具体什么原因目前尚不清楚。
kubernetes提供多种针对私有仓库认证的方式,在这里,我只说明其中的一种方法,也是我实际使用的方法,通过k8s的secret来实现。
- 在k8s master上通过docker login登录registry,生成config.json文件。然后执行如下命令,将文件转换成base64编码:
cat /root/.docker/config.json|base64 -w 0
- 生成registrykey-myhub.yml的配置文件,内容如下:
apiVersion: v1kind: Secretmetadata:name: registrykey-myhubnamespace: defaulttype: kubernetes.io/dockerconfigjsondata:.dockerconfigjson: ewoJImF1dGhzIjogewoJCSJodHRwczovL215aHViLmZkY2Nsb3VkLmNvbS8iOiB7CgkJCSJhdXRoIjogIllXUnRhVzQ2VFhsemIyWjBPVFU1TXpnPSIsCgkJCSJlbWFpbCI6ICJ5YW53MDJAbXlzb2Z0LmNvbS5jbiIKCQl9Cgl9Cn0=#创建secret:kubectl create -f registrykey-myhub.yml
- 在创建pod时,指定imagePullSecrets,示例如下:
apiVersion: v1kind: ReplicationControllermetadata:name: sqltools-yczlabels:name: sqltools-yczspec:replicas: 1selector:name: sqltools-ycztemplate:metadata:labels:name: sqltools-yczspec:containers:- name: sqltools-yczimage: myhub.fdccloud.com/common/sqltoolsports:- containerPort: 80env:- name: DB_HOSTvalue: "mysql-ycz.default.svc.cluster.local"- name: DB_NAMEvalue: "config"- name: DB_USERNAMEvalue: "ycz"- name: DB_PASSWORDvalue: "77TqrfPaMbwaZXYu"- name: CACHE_HOSTvalue: "memcached-ycz.default.svc.cluster.local"- name: CACHE_PORTvalue: "11211"- name: CACHE_PREFIXvalue: "ycz"nodeSelector:kubernetes.io/hostname: k8s-masterimagePullSecrets:- name: registrykey-myhub
官方文档配置说明如下:
https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
需要说明的是,按照官方文档的配置,验证是失败的,这一点确实是很奇怪。
转载于:https://www.cnblogs.com/breezey/p/9105622.html
K8S从私有仓库拉取镜像相关推荐
- linux 从仓库拉取镜像,k8s 从私有仓库拉取镜像
k8s 从私有仓库摘取镜像报错 with ErrImagePull: "rpc error: code = Unknown desc = Error response from daemon ...
- dockerfile拉取私库镜像_从私有仓库拉取镜像
从私有仓库拉取镜像 浏览 0 扫码 分享 2019-10-27 17:16:54 origin_last_modified:2019-06-06 06:18(#14740) 译文原文 英文原文 版权声 ...
- k8s实战之从私有仓库拉取镜像 - kubernetes
1.实战目的 从私有docker仓库拉取镜像,部署pod.上一篇中,我们搭建了私有的镜像仓库,这一篇我们将与k8s结合实战使用私有仓库. 2.登录docker 为了完成本次实战,需要登录docker, ...
- docker 从harbor 拉取镜像慢_Kubernetes-通过Rancher从Harbor私有仓库拉取镜像
引言 前一篇文章详细描述了如何使用rancher搭建Kubernetes高可用集群,集群搭建好了后,我们就需要开始部署应用了,那么如何从私有镜像仓库拉取镜像呢? 原理 Harbor使用了基于角 ...
- 快速解决Kubernetes从k8s.gcr.io仓库拉取镜像失败问题
前言: 在部署Kubernetes的过程中,需要从k8s.grc.io仓库中拉取部署所需的镜像文件,但是由于国内对国外的防火墙问题导致无法正常拉取,下面介绍一个方法来解决此问题,完成Kubernet ...
- 5.docker从指定(私有)仓库拉取镜像、推送镜像
1.推送镜像到私有仓库 1.1修改配置daemon.json 由于我用的mac系统,直接在docker客户端配置私有仓库地址即可.配置完之后记得重启docker. 1.2 给镜像打标签 举例将从官方仓 ...
- 创建机器人账户,用来给 k8s 从一个私有项目拉取镜像
转自:https://randyou.github.io/2020/06/16/k8s-pull-from-harbor/ 登录 Harbor 进入一个私有项目 点击机器人账户页签,添加一个机器人账号 ...
- docker pull 从仓库拉取镜像
docker pull 要拉取的镜像名 等价于 docker pull 要拉取的镜像名:lastest 拉取固定的镜像:docker pull 要拉取的镜像名:版本号 省略lastest表设计就是拉取 ...
- 【K8S】Docker向私有仓库拉取/推送镜像报错(http: server gave HTTP response to HTTPS client)
这里,我们搭建的Harbor仓库的地址为 http://192.168.175.101:1180. 报错信息如下所示. [root@binghe101 ~]# docker login 192.168 ...
最新文章
- 女皇万岁!我们是来送礼的 ——阿里聚安全春天系列全套大礼包
- Django项目知识点(三)
- 关于动画的几种状态表示的含义以及能够使用2d动画表述为什么要使用3d动画表述
- PAT (Advanced Level) 1038. Recover the Smallest Number (30)
- 北大OJ(POJ 2795)金银岛
- 纽约州立大学宾汉姆顿大学计算机科学专业,纽约州立大学宾汉姆顿大学
- ckeditor简单使用心得
- 在Visio里加上、下标方法
- visualcreators.com公司产品过滤漏洞!
- CentOS7:Ruby安装
- SQL 数据库 学习 004 预备知识
- vuejs中根据用户名生成头像背景色
- 移动硬盘安装manjaro 20.2以及常用软件安装
- 如何修复老照片,Bringing-Old-Photos-Back-to-Life机器学习开源项目安装使用 | 机器学习
- 云聚创新力量 领航数字未来 峯云5G·联通沃云峰会2019成功举行
- Carla在Windows上的安装与运行
- Can't update table 'psxt_user' in stored function/trigger because it is already used by statement wh
- Latex中在字母上加上波浪线
- 云服务器快速建网站_安装BT宝塔面板和wordpress
- 微软高管:IT业正向个人计算时代转型
热门文章
- 氮化物 Al2O3-TiN陶瓷粉末/铁三铝金属间化合物-氮化钛陶瓷复合材料/TiN复合材料A12O3陶瓷氮化铝氮化钛氧铝
- 为什么说固定资产管理系统是企业降本增效的利器?
- 电子工程师怎么才能规范设计标准、提高设计效率?
- Java 贪吃蛇 最简易地实现方法 超简短代码实现 (附源码 详解)
- 貌似潘安,情如宋玉,才胜子建 是什么意思?
- HTTP 请求中的Header 参数
- Genymotion安装及配置简介
- 107. 二叉树的层次遍历 II(JavaScript)
- UML Thinking in UML大象 参与者
- 敏捷软件开发:原则、模式与实践——第14章 使用UML