当前位置: 首页 > news >正文

k8s从私有库harbor中拉取镜像

目录

一、前言

二、配置

三、问题总结


一、前言

        Docker镜像是构建应用程序的基础。然而,许多组织和开发团队希望保留他们的Docker镜像在私有仓库中,并从中拉取镜像,而不是从公共Docker Hub中下载。这样做的原因有很多,包括:

1. 安全性:私有仓库可以提供更高的安全性,因为它们可以控制谁可以访问和下载镜像。这可以防止未经授权的访问和数据泄露。

2. 可靠性:私有仓库可以提供更可靠的镜像下载速度和更稳定的服务。此外,私有仓库还可以缓存常用的镜像,以便更快地访问它们。

3. 管理性:私有仓库可以帮助组织更好地管理他们的Docker镜像资源。它们可以轻松地组织和管理自己的镜像,而无需依赖第三方服务。

        因此,从私有仓库中拉取镜像已经成为了许多企业和开发团队的最佳实践。在本篇博客中,我们将探讨如何在Kubernetes集群中成功地从私有仓库中拉取镜像,以便更好地管理和部署应用程序。

二、配置

        进行配置前,确保已经搭建了k8s,harbor,docker,并需要有harbor的账户、密码、服务器信息。

        ①配置docker的daemon.json:

        daemon.json路径一般在:/etc/docker/daemon.json

{
 "insecure-registries": ["xxxxxxx:xx"],
 "exec-opts": ["native.cgroupdriver=systemd"],
 "bip":"172.12.0.1/24",
 "registry-mirrors": ["http://docker-registry-mirror.kodekloud.com"],
 "dns" : ["114.114.114.114","8.8.8.8"],
 "log-driver": "json-file",
 "log-opts": {
    "max-size": "10m",
    "max-file": "3"
  }
}

        其中insecure-registries是最重要的,即harbor的地址和端口信息

②登录docker镜像仓库

        使用命令:

docker login -u userName -p password xxx.xxx.xxx.xx:xx

        登录完成会显示config.json的路径,比如我这里显示的路径为: /home/halos/.docker/config.json。

        查看文件显示:

③创建secret

        使用命令:

kubectl create secret generic regcred  --from-file=.dockerconfigjson=</home/halos/.docker/config.json>  --type=kubernetes.io/dockerconfigjson

        再使用base命令生成编码:

base64 /home/halos/.docker/config.json

        创建harbor-secret.yaml文件:

apiVersion: v1

data:

  .dockerconfigjson: ewo3dfdsfQkJImF1dGgfgdfka0F5TURJeCIKCQl9Cgl9Cn0=

kind: Secret

metadata:

  name: harbor-secret

  namespace: default

type: kubernetes.io/dockerconfigjson

        其中dockerconfigjson是base命令生成的编码,我这里是乱写的,具体的请使用自己机器生成的base编码。

        最后使用命令部署:

kubectl apply -f harbor-secret.yaml

        现在k8s就可以进行镜像的拉取了。

三、问题总结

①docker login无法登录

        docker login无法登录的问题就是daemon.json没有配置,按照二中的①进行配置即可

②k8s无法拉取镜像

        该问题就是写此文的原因,pod会显示状态:ImagePullBackOff,一般会在pod中报错如下:

http://www.lryc.cn/news/291843.html

相关文章:

  • HCIA-Datacom实验指导手册:4.2 实验二:AAA配置实验
  • 黑马程序员前端web入门:新浪新闻
  • 力扣_字符串2—最长有效括号
  • 小程序接入企业微信「联系我」功能
  • jdk17新特性—— 密封类(Sealed Classes)
  • 【亿级数据专题】「分布式消息引擎」 盘点本年度我们探索服务的HA高可用解决方案
  • 计算机网络-物理层设备(中继器 集线器)
  • PaddleDetection学习4——使用Paddle-Lite和OpencCV在 Android 上实现实时的人脸检测(java)
  • mkcert的安装和使用,5分学会在本地开启localhost的https访问方式
  • RHCE DNS域名解析服务器
  • 创建表与删除表(六)
  • 微信开发者工具 git 拉取 failed invalid authentication scheme
  • (4)Elastix图像配准:3D图像
  • windows安装oracle之后怎么连接使用
  • 在前端开发中,常见的数组循环方式有以下几种:
  • Redis -- 单线程模型
  • C语言第十五弹---操作符(上)
  • 使用宝塔面板访问MySQL数据库
  • Win10 双网卡实现同时上内外网
  • Django模型(六)
  • 【Linux】Linux基本指令
  • stm32中的SPI
  • ChatGPT可与自定义GPTs一起使用,智能AI代理时代来啦!
  • 《Numpy 简易速速上手小册》第1章:Numpy 基础(2024 最新版)
  • 【美团】SaaS技术部-后端研发工程师(海外业务)
  • linux安装mongodb数据库启动报错? 都是冰红茶滴水儿
  • win11安装wsl作为linux子系统并当作服务器
  • 户用光伏电站的管理包括哪些内容?需要怎么做?
  • Kafka-服务端-PartitionLeaderSelector、ReplicaStateMachine
  • 总结11(数组)