k8s拉取不了私有镜像问题

embedded/2024/9/24 19:13:32/

报错

kubectl describe pod run-nfs-client-provisioner

在这里插入图片描述

 crictl pull 172.24.4.59/library/spark_lijia:3.5.1

在这里插入图片描述

  1. 报错问题:“k8s拉取不了私有镜像” 可能是由于以下几个原因造成的:
  2. 认证问题:私有镜像库可能需要用户名和密码才能拉取镜像。
  3. 网络问题:Kubernetes集群节点可能无法访问私有镜像库的网络。
  4. 镜像地址错误:镜像地址可能输入有误。
  5. containerd无法通过/etc/docker/daemon.json指定私有镜像
    我出现了两个问题
    我的解决方法:
    问题一:认证问题
    为Pod提供认证信息。创建一个ImagePullSecret,并将其与Pod关联。
kubectl create secret docker-registry image-pull-secret \--docker-server=xxxxxxx \--docker-username='xxxxxx' \--docker-password='xxxxxx' 

最后在部署应用的添加imagePullSecrets

apiVersion: apps/v1
kind: Deployment
metadata:name: my-deployment
spec:template:spec:containers:- name: testimage: test:latestimagePullSecrets:- name: image-pull-secret

问题二:无法通过/etc/docker/daemon.json指定私有镜像,没台服务器都需要改
containerd不支持拉取私有镜像
我们都知道containerd来自于docker,后被docker捐献给了云原生计算基金会(Cloud Native Computing Foundation,CNCF)。在RHEL上通过YUM部署containerd的过程中,表现为需要加载docker-ce.repo镜像源。通过在线方式安装的containerd的配置文件只有一个有效配置项:disabled_plugins = [“cri”],可以通过下面的命令生成containerd的默认配置文件,然后在此基础上自行修改。

containerd config default > /etc/containerd/config.toml #生成containerd的默认配置文件
 vi /etc/containerd/config.toml #修改配置新增一下配置[plugins."io.containerd.grpc.v1.cri".registry][plugins."io.containerd.grpc.v1.cri".registry.configs][plugins."io.containerd.grpc.v1.cri".registry.configs."172.24.4.59".auth]username = "admin"password = "123456"[plugins."io.containerd.grpc.v1.cri".registry.mirrors][plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]endpoint = ["https://registry-1.docker.io"][plugins."io.containerd.grpc.v1.cri".registry.mirrors."172.24.4.59"]endpoint = ["http://172.24.4.59"]

修改前
在这里插入图片描述
修改后
在这里插入图片描述

 systemctl restart containerd  #重启服务
containerd config dump 查看配置是否加载成功

在这里插入图片描述
测试

 crictl pull 172.24.4.59/library/spark_lijia:3.5.1

在这里插入图片描述

kubectl describe pod run-nfs-client-provisioner

在这里插入图片描述


http://www.ppmy.cn/embedded/29241.html

相关文章

ShellScript脚本编程(二)

Shell_条件判断(一) Shell中也有条件表达式,也就是比较两个值是否相等 基本语法 test 表达式 [ 表达式 ] 注意:中括号前后需要有空格 [rootlocalhost scripts]# a10 [rootlocalhost scripts]# echo $a 10 [rootlocalhost scripts]# test $a 10 [roo…

视频监控平台-OSD源代码解释和分享:通过大华SDK设置大华设备的OSD

目录 一、OSD介绍 (一)OSD的定义 (二)OSD的设置 1、自定义文本 2、图标和符号 3、定位和叠加 二、代码和解释 (一)代码和注释 (二)代码解释 1、概述 2、代码详细解释 一、…

Docker新建应用容器引擎与启动ssh服务

XZ的账户资料: 使用SecureCRT的ssh2协议远程登陆 ip: 192.XXX.X.XXX port: XXXX 用户名:xiaohua 密码:123456 $ docker run --name xiaohua_docker -p xxxxx:xx -it -v /home/d/xiaohua:/home/xiaohuac522ac0d6194 bash //将真实路径/…

【OceanBase诊断调优】—— 如何查看 Root Service 切换完成的时间点

本文详述如何查看 Root Service 切换完成的时间点。 在主 Root Service 节点上的 rootservice.log 搜索。 grep -i "START_SERVICE: full_service !!! start to work!!" rootservice.log[2023-12-08 14:35:58.927245] INFO [RS] ob_root_service.cpp:7111 [27152]…

开发环境虚拟环境学习记录

1、VS Code搭建python环境 下载好Visual Studio Code后,首先需要进入Visual Studio Code并安装支持python开发的插件: 2、虚拟环境 2.1、初识虚拟环境 概述:①、在使用Python语言的时候我们使用pip来安装第三方包,但是由于pip的…

React | React.cloneElement 的使用

我看到同事的代码里有 cloneElement,于是去了解了一下这个函数。 就跟它的名字一样,克隆元素,可以基于一个元素创建一个新的元素,并且为新元素添加新的属性或者覆盖已有的属性。 下面是一个简单例子: .node1 {backg…

【webrtc】MessageHandler 9: 基于线程的消息处理:执行Port销毁自己

Port::Port 构造的时候,就触发了一个异步操作,但是这个操作是要在 thread 里执行的,因此要通过post 消息 MSG_DESTROY_IF_DEAD 到thread跑:port的创建并米有要求在thread中 但是port的析构却在thread里 这是为啥呢?

webpack 入口和出口的最佳实践

入口和出口的最佳实践 {ignore} 具体情况具体分析 下面是一些经典场景 一个页面一个JS 外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传 源码结构 |—— src|—— pageA 页面A的代码目录|—— index.js 页面A的启动模块|—— ...|—— pageB 页面…