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中报错如下:

相关推荐
万里侯1 天前
GitOps实战:用Git管理基础设施
微服务·容器·k8s
万里侯1 天前
K8s和我:一人一狗的日常冒险
微服务·容器·k8s
万里侯2 天前
Kubernetes Helm Chart开发最佳实践:打造可复用的应用包
微服务·容器·k8s
万里侯2 天前
分布式系统设计原则:构建高可用的系统架构
微服务·容器·k8s
万里侯2 天前
微服务与人生:从服务网格看人际关系
微服务·容器·k8s
万里侯2 天前
GitLab CI/CD流水线优化实战:从龟速到飞速的蜕变
微服务·容器·k8s
万里侯2 天前
户外露营攻略:远离城市喧嚣的完美周末
微服务·容器·k8s
万里侯2 天前
云原生安全最佳实践:守护容器化应用的安全防线
微服务·容器·k8s
万里侯2 天前
云原生存储方案对比:选择适合你的存储策略
微服务·容器·k8s
运维全栈笔记4 天前
Harbor生产级部署实战:PostgreSQL+Redis+MinIO全解耦架构详解
linux·运维·服务器·笔记·架构·kubernetes·k8s