k8s_如何配置 containerd 使用镜像加速拉取docker.io上的镜像

在 Kubernetes 使用 containerd 作为容器运行时,可以通过配置 containerd 来使用镜像网站(镜像仓库)拉取镜像。这可以通过修改 containerd 的配置文件来实现。以下是详细步骤:

步骤 1:安装 containerd (如果已安装,这一步略过)

如果尚未安装 containerd,可以使用以下命令安装(以 CentOS 为例):

sudo yum update -y
sudo yum install -y containerd

步骤 2:配置 containerd

  1. 创建 containerd 配置文件(如果还没有):

    sudo mkdir -p /etc/containerd
    containerd config default | sudo tee /etc/containerd/config.toml
    
  2. 编辑配置文件

    打开 /etc/containerd/config.toml 文件:

    sudo nano /etc/containerd/config.toml
    
  3. 配置镜像加速

    找到 [plugins."io.containerd.grpc.v1.cri".registry.mirrors] 部分,并添加你的镜像网站地址。例如,使用 docker.io 镜像仓库:

    [plugins."io.containerd.grpc.v1.cri".registry.mirrors][plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]endpoint = ["https://your-mirror-url"]
    

    示例配置,使用阿里云镜像加速:

    [plugins."io.containerd.grpc.v1.cri".registry.mirrors][plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]endpoint = ["https://registry.aliyuncs.com"]
    

    如果这个生效,可以换成别的镜像网站,比如:
    endpoint = [“https://l51yxa8e.mirror.aliyuncs.com”]

    以下是一个包含多种镜像加速配置的示例 config.toml 文件:

    [plugins."io.containerd.grpc.v1.cri".registry.mirrors][plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]endpoint = ["https://registry.aliyuncs.com",    "https://mirrors.cloud.tencent.com", "https://reg-mirror.qiniu.com"][plugins."io.containerd.grpc.v1.cri".registry.mirrors."gcr.io"]endpoint = ["https://gcr.mirrors.aliyuncs.com"][plugins."io.containerd.grpc.v1.cri".registry.mirrors."quay.io"]endpoint = ["https://quay.mirrors.aliyuncs.com"]
    

步骤 3:重启 containerd 服务

为了使配置生效,需要重启 containerd 服务:

systemctl daemon-reload
systemctl restart containerd
systemctl status containerd

步骤 4:验证配置

可以通过 crictl 工具验证镜像是否从配置的镜像仓库拉取。

  1. 安装 crictl

    VERSION="v1.24.0"  # 使用最新版本或根据需要选择特定版本
    wget https://github.com/kubernetes-sigs/cri-tools/releases/download/$VERSION/crictl-$VERSION-linux-amd64.tar.gz
    tar zxvf crictl-$VERSION-linux-amd64.tar.gz -C /usr/local/bin
    
  2. 配置 crictl

    创建或编辑配置文件 /etc/crictl.yaml

    runtime-endpoint: unix:///run/containerd/containerd.sock
    
  3. 使用 crictl 拉取镜像并验证

    crictl pull nginx
    crictl images
    

示例配置步骤

以下是一个完整的示例,假设使用阿里云的镜像加速:

  1. 安装 containerd

    sudo yum update -y
    sudo yum install -y containerd
    
  2. 生成默认配置文件

    sudo mkdir -p /etc/containerd
    containerd config default | sudo tee /etc/containerd/config.toml
    
  3. 编辑配置文件

    sudo nano /etc/containerd/config.toml
    

    添加阿里云镜像加速配置:

    [plugins."io.containerd.grpc.v1.cri".registry.mirrors][plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]endpoint = ["https://registry.aliyuncs.com"]
    
  4. 重启 containerd 服务

    sudo systemctl restart containerd
    
  5. 安装并配置 crictl

    VERSION="v1.24.0"
    wget https://github.com/kubernetes-sigs/cri-tools/releases/download/$VERSION/crictl-$VERSION-linux-amd64.tar.gz
    tar zxvf crictl-$VERSION-linux-amd64.tar.gz -C /usr/local/binsudo bash -c 'echo "runtime-endpoint: unix:///run/containerd/containerd.sock" > /etc/crictl.yaml'
    
  6. 使用 crictl 验证

    sudo crictl pull nginx
    sudo crictl images
    

通过这些步骤,你可以配置 containerd 使用指定的镜像网站来拉取镜像,并在 Kubernetes 集群中使用这些镜像。

但是,虽然 crictl pull nginx可以成功从docker.io拉取镜像,但安装calico的时候貌似还是报错:

Failed to pull image "docker.io/calico/kube-controllers:v3.25.0": rpc error: code = DeadlineExceeded desc = failed to pull and unpack image "docker.io/calico/kube-controllers:v3.25.0": failed to copy: httpReadSeeker: failed open: failed to do request: Get "https://production.cloudflare.docker.com/registry-v2/docker/registry/v2/blobs/sha256/5e/5e785d005ccc1ab22527a783835cf2741f6f5f385a8956144c661f8c23ae9d78/data?verify=1719483856-0VGptNFSuWdcvFKfC1P%!F(MISSING)QVFLXJo%!D(MISSING)": dial tcp 108.160.167.174:443: i/o timeout

看上去是在下载过程中还访问了docker.com,因为访问不了导致超时,上述配置仅仅是对docker.io做了镜像加速。

注意

如果k8s有多个节点,每个节点,包括master ,node等,都需要这么配置一下。
否则会出现问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/36231.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32学习和实践笔记(38):RTC实时时钟实验

1.STM32F1 RTC介绍 STM32 的实时时钟( RTC)是一个独立的定时器。 STM32 的 RTC 模块拥有一组连续计数的计数器,在相应软件配置下,可提供时钟日历的功能。修改计数器的值可以重新设置系统当前的时间和日期。 RTC模块和时钟配置…

事务的特性-原子性(Atomicity)、一致性(Consistency)、隔离性(Asolation)、持久性(Durability)

一、引言 1、数据库管理系统DBMS为保证定义的事务是一个逻辑工作单元,达到引入事务的目的,实现的事务机制要保证事务具有原子性、一致性、隔离性和持久性,事务的这四个特性也统称为事务的ACID特性 2、当事务保持了ACID特性,才能…

【精选】数据治理项目实施(合集)06——数据标准在数据治理中的落地实践

导读 本文对数据标准管理进行了深入探讨。重点介绍了数据标准的定义,实施路线和具体标准定义的内容,并总结了企业开展数据标准管理面临的常见问题,由于编写的水平和时间有限, 难免有所纸漏, 欢迎大家批评指正。 在现实…

Elasticsearch 优缓存和分片策略的影响

在Elasticsearch中,缓存机制和分片策略是影响其性能的关键因素。合理配置和使用这些机制,可以显著提升Elasticsearch的查询性能和系统稳定性。本文将深入探讨Elasticsearch的缓存机制和分片策略,并分析它们对系统性能的影响。 一、Elasticse…

MyBatis-关联查询的对象是集合的处理

用户和角色之间是多对多的关系,也就是说,一个用户可以有多个角色与之绑定,所以在User对象中,角色的属性就必须是一个集合Set或者List,这里我们就用List集合在做例子: 1.怎么在Mybatis中实现关联的List集合对…

k8s流控平台apiserver详解

一、简单理解认识apiserver 1.主要功能 认证 鉴权 准入 mutating validating admission 限流 2.概念 apiserver保护etcd,缓存机制,有缓存直接返回,没缓存再去查看etcd,apiserver是担任和其他平台同信并认证 3.访问控制概览…

ChatGPT不受支持的国家和地区

截至目前,OpenAI的ChatGPT在以下国家和地区不受支持: 中国俄罗斯朝鲜古巴伊朗叙利亚乌克兰(有特定例外) 从这些国家访问或提供访问ChatGPT的服务可能会导致账户被封锁或暂停。此政策旨在确保遵守当地法规和OpenAI的服务条款。 下…

【Android面试八股文】如何通过WindowManager添加Window?

文章目录 1. 获取WindowManager实例2. 创建一个Window的视图(View)3. 设置Window的布局参数(LayoutParams4. 添加权限5. 添加视图到WindowManager6. 完整示例7. 小结1. 获取WindowManager实例 你可以通过Context获取WindowManager实例。 WindowManager windowManager = (W…

python DoIPClient详解

python DoIPClient详解 DoIPClient 是 doipclient 库中的一个核心类,用于实现诊断通过 IP(DoIP)协议与汽车电子控制单元(ECU)进行通信。以下是对 DoIPClient 类的详细解释: 构造函数(init 方法…

精益生产KPI指标分析与管理系统,助力企业挖掘数据黄金焕发第二生命线

智慧工厂精益生产追求以越来越少的投入获取越来越多的产出,通过消除浪费、提高效率来实现生产效益的最大化。精益生产强调量化管理,通过与KPI的结合,可以将生产过程中的关键数据进行量化和分析,推动企业各部门更加关注运营效率&am…

嵌入式Linux的浮点运算能力测试

嵌入式Linux的浮点运算能力测试 今天需要对一款ARM CPU的浮点数运算能力进行测试,采用了台式机上常用的SuperPI相同的原理:计算一定小数位数的圆周率来测试硬件的浮点数计算能力和稳定性。 首先下载计算软件的源代码,可以使用下面命令&#…

Excel 宏录制与VBA编程 —— 12、文本字符串类型相关(转换、拆分、分割、连接、替换、查找、“Like“)

字符串分割,文末示例(文末代码3附有源码) 代码1 - 基础字符串 代码2 - 字符串拆分 代码3 - 字符串分割 Option ExplicitSub WorkbooksClear()Dim DataRange As RangeSet DataRange Range("C2:E12")DataRange.Clear End SubSub Wo…

C++Primer Plus 第十四章代码重用:14.4.4 数组模板示例和非类型参数

系列文章目录 14.4.4 数组模板示例和非类型参数 提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 系列文章目录14.4.4 数组模板示例和非类型参数 14.4.4 数组模板示例和非类型参数 模板常用作容器类,这…

NetSuite 隐藏功能之Memorized Transactions记忆交易

本周功课结束,想说说Memorized Transactions这个有时会被忽略的功能,顾名思义,记忆交易就是可以将一个原始的Transaction在创建后进行“记忆”,以保证后续可以在固定日期(周期性日期或者自定义日期)产生“被…

ABC355 Bingo2

分析: 找出其中一行或列或任意对角线被全部标记,即可输出回合数,否则输出-1 如果x%n0,行是x/n,列是n 如果x%n!0,行是x/n1,列是x%n 如果行列或行列n1即为对角线。 标记行列对角线…

CISCN--西南半决赛--pwn

1.vuln 这是主函数,数一下就发现可以溢出最后的0x4008d0 然后会执行到这里,逻辑就是在v0上写shellcode,不过执行写0x10,不够sh,很明显要先read。 以下是exp: from pwn import * context.archamd64 ioprocess(./vuln)…

一大波客户感谢信来袭,感谢认可!

“自美的置业数据中台项目启动以来,贵公司实施团队与服务运营始终以专业、敬业、合作的态度扎根用户、服务用户、与用户共成长。在此,我司表示由衷的感谢!” 这是携手美的置业以来,我们收到的第二封客户感谢信。 △ 以上为美的置…

Windwos +vs 2022 编译openssl 1.0.2 库

一 前言 先说 结论&#xff0c;编译64位报错&#xff0c;查了一圈没找到解决方案&#xff0c;最后换了32位的。 使用qt访问web接口&#xff0c;因为是https&#xff0c;没有openssl库会报错 QNetworkReply* reply qobject_cast<QNetworkReply*>(sender());if (reply){…

UI框架与MVC模式详解(2)——数据管理

【内存包括全量数据】 这是最简单的情况。 有个数据管理的类&#xff0c;初始化时把所有需要的数据加载到内存中&#xff0c;提供不同的Get方法&#xff0c;让同一个界面获取不同的数据或者不同的界面获取相同的数据。 一般来说&#xff0c;对于同一种数据单位&#xff0c;会…

《数据仓库与数据挖掘》 总复习

试卷组成 第一章图 第二章图 第三章图 第四章图 第五章图 第六章图 第九章图 第一章 DW与DM概述 &#xff08;特点、特性&#xff09; DB到DW 主要特征 &#xff08;1&#xff09;数据太多&#xff0c;信息贫乏&#xff08;Data Rich&#xff0c; Information Poor)。 &a…