【kubernetes】CRI OCI
1 OCI
OCI(Open Container Initiative):由Linux基金会主导,主要包含容器镜像规范和容器运行时规范:
- Image Specification(image-spec)
- Runtime Specification(runtime-spec)
- runC
image-spec定义了镜像的格式,镜像的格式有以下几个部分组成:
- index(可选):由于镜像对于不同平台的实现可能不同,因此,对于不同的平台会提供不同的镜像,在该文件中与manifest最大的不同就是platform,它表明了该镜像对应的平台(包含硬件架构和操作系统)
- manifest:描述了镜像自身以及镜像的各层的sha256,用sha256就可以定位到其他层
- layers:每一层的数据的压缩包
- config:镜像的配置参数
当使用containerd作为容器运行时,上面的所有文件都在/var/lib/containerd/io.containerd.content.v1.content/blobs/sha256中。
runtime-spec定义了容器的配置、运行环境和生命周期:
- config:生成容器的参数配置
- runtime:容器的状态、生命周期以及可以执行的操作
当使用containerd作为容器运行时,在ctr c info <container_id>的输出的Spec中可以查看到config文件的内容,另外,使用ctr oci spec可以查看到runtime-spec的默认config文件。
runC是一个从docker的libcontainer库封装而来的工具,可以根据OCI规范来创建和管理容器,它直接对接操作系统,因此,也使用runC直接创建容器(RunC简介),使用runC创建容器时需要2个部分:runtime-spec中的config文件以及rootfs。
2 CRI
CRI(Container Runtime Interface):由CNCF主导,主要是为了使kubernetes能够对接不同的容器运行时而制定的接口规范
- containerd:Docker从Docker Daemon拆分出containerd,containerd负责容器的各种操作
- CRI-O:由redhat开源并由社区驱动的专为kubernetes设计的轻量级容器运行时
- Kata-containers:由OpenStack基金会管理的容器项目,整合了Intel和Clear Containers和Hyper.sh的runV,主要目标是提供虚拟机级别的安全容器,也就是拥有容器的启动速度以及虚拟机的安全

docker作为命令行工具,当用户使用docker create创建容器时,docker会将命令发给dockerd守护进程,docker会将请求发给docker-containerd,docker-containerd会启动docker-containerd-shim进程,该进程会使用runC创建进程,runC是一个二进制程序,创建结束后就会退出,而docker-containerd-shim会作为容器的父进程而运行。

CRI作为k8s提供给外部容器运行时的接口,可以对接许多容器运行时,在早期,k8s通过内置的dockershim实现对docker的兼容,但是在未来,k8s会移除掉dockershim,而是直接对接外部的容器运行时。当前的主流容器运行时主要是:containerd(从dockerd分离而来)和CRI-O。为了管理容器,接收容器中进程的信号,管理容器中的进程,通常会在容器运行时中提供shim,该shim负责容器中进程的管理。具体实现容器和镜像的功能的规范是OCI,当前的主流方案是runC(由dockerd分离而来)和kata(基于虚拟化方案提供安全容器)。
参考文档:
- 白话 Kubernetes Runtime
相关文章:
【kubernetes】CRI OCI
1 OCI OCI(Open Container Initiative):由Linux基金会主导,主要包含容器镜像规范和容器运行时规范: Image Specification(image-spec)Runtime Specification(runtime-spec)runC image-spec定义了镜像的格式,镜像的格式有以下几…...
竞赛 机器视觉opencv答题卡识别系统
0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 答题卡识别系统 - opencv python 图像识别 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分…...
Youtube视频下载工具分享-油管视频,音乐,字幕下载方法汇总
YouTube视频下载方法简介 互联网上存在很多 YouTube 下载工具,但我们经常会发现自己收藏的工具没过多久就会失效,我们为大家整理的这几种方法,是存在时间较久并且亲测可用的。后续如果这些工具失效或者有更好的工具,我们也会分享…...
【算法练习Day11】滑动窗口最大值前 K 个高频元素
📝个人主页:Sherry的成长之路 🏠学习社区:Sherry的成长之路(个人社区) 📖专栏链接:练题 🎯长路漫漫浩浩,万事皆有期待 文章目录 滑动窗口最大值前 K 个高频…...
华为云HECS云服务器docker环境下安装nginx
前提:有一台华为云服务器。 华为云HECS云服务器,安装docker环境,查看如下文章。 华为云HECS安装docker-CSDN博客 一、拉取镜像 下载最新版Nginx镜像 (其实此命令就等同于 : docker pull nginx:latest ) docker pull nginx查看镜像 dock…...
GET 和 POST的区别
GET 和 POST 是 HTTP 请求的两种基本方法,要说它们的区别,接触过 WEB 开发的人都能说出一二。 最直观的区别就是 GET 把参数包含在 URL 中,POST 通过 request body 传递参数。 你可能自己写过无数个 GET 和 POST 请求,或者已经看…...
机器学习(监督学习)笔记
目录 总览笔记内容线性回归梯度下降特征缩放多输出线性回归 逻辑回归二分类与逻辑回归分类任务的性能指标(召回率,精度,F1分数等)支持向量机SVMK近邻朴素贝叶斯分类器朴素贝叶斯分类器进阶多分类逻辑回归二分类神经网络多分类神经…...
科普rabbitmq,rocketmq,kafka三者的架构比较
对比 架构对比 从架构可以看出三者有些类似,但是在细节上有很多不同。下面我们就从它们的各个组件,介绍它们: RabbitMQ,是一种开源的消息队列中间件。下面是RabbitMQ中与其相关的几个概念: 1.生产者(P…...
加密货币交易技巧——地利(二)
EMA指标 针对资金体量大的代币,做现货交易或低倍合约,可参考以下指标: 1.指标介绍:EMA,移动平均线指标,这里只分享中长线用法,非常实用且准确率超高 2.适用群体:适用于现货或低倍…...
服务网关Gateway_微服务中的应用
没有服务网关 问题: 地址太多安全性管理问题 为什么要使用服务网关 网关是微服务架构中不可或缺的部分。使用网关后,客户端和微服务之间的网络结构如下。 注意: 网关统一向外部系统(如访问者、服务)提供REST API。在Sp…...
2G大小的GPU对深度学习的加速效果如何?
训练数据情况 总共42776张224*224*3张图片 Found 42776 files belonging to 9 classes. Using 12833 files for training. 模型参数情况 Total params: 10,917,385 Trainable params: 10,860,745 Non-trainable params: 56,640 batch-size:12 GPU信息 NVIDIA GeForce GT 7…...
intel 一些偏门汇编指令总结
intel 汇编手册下载链接:https://www.intel.com/content/www/us/en/developer/articles/technical/intel-sdm.html LDS指令: 手册中可以找到 位于 3-588 根据手册内容猜测:lds r16 m16:16 的作用,是把位于 [m16:16] 内存地址的数…...
python 多个proto文件import引用时出现ModuleNotFoundError错误
问题描述 my_proto文件夹里有两个proto文件,book.proto想要引用person.proto文件中的Person,如下 book.proto syntax "proto2";import "person.proto"; // 导入person.proto文件message Book {optional string name 1;optional …...
C语言图书管理系统
一、 系统概述 图书管理系统是一个用C语言编写的软件系统,旨在帮助图书馆或图书机构管理其图书馆藏书和读者信息。该系统提供了一套完整的功能,包括图书录入、借阅管理、归还管理、读者管理、图书查询、统计报表等。 二、 系统功能 2.1 图书录入 管理…...
归并排序及其非递归实现
个人主页:Lei宝啊 愿所有美好如期而遇 目录 归并排序递归实现 归并排序非递归实现 归并排序递归实现 图示: 代码: 先分再归并,像是后序一般。 //归并排序 void MergeSort(int* arr, int left, int right) {int* temp (int…...
【kubernetes】kubernetes中的Controller
1 什么是Controller? kubernetes采用了声明式API,与声明式API相对应的是命令式API: 声明式API:用户只需要告诉期望达到的结果,系统自动去完成用户的期望命令式API:用户需要关注过程,通过命令一…...
RabbitMQ-死信队列
接上文 RabbitMQ-java使用消息队列 1 死信队列简介 死信队列模式实际上本质是一个死信交换机绑定的死信队列,当正常队列的消息被判定为死信时,会被发送到对应的死信交换机,然后再通过交换机发送到死信队列中,死信队列也有对应的消…...
ElasticSearch - 基于 DSL 、JavaRestClient 实现数据聚合
目录 一、数据聚合 1.1、基本概念 1.1.1、聚合分类 1.1.2、特点 1.2、DSL 实现 Bucket 聚合 1.2.1、Bucket 聚合基础语法 1.2.2、Bucket 聚合结果排序 1.2.3、Bucket 聚合限定范围 1.3、DSL 实现 Metrics 聚合 1.4、基于 JavaRestClient 实现聚合 1.4.1、组装请求 …...
什么是数学建模(mooc笔记)
什么是数学建模 前提:我们数学建模国赛计划选择C题,故希望老师的教学中侧重与C题相关性大的模型及其思想进行培训。之后的学习内容中希望涉及以下知识点: logistic回归相关知识点。如:用法、适用、限制范围等。精学数学建模中常…...
基于SpringBoot的流浪动物管理系
基于SpringBoot的流浪动物管理系的设计与实现,前后端分离 开发语言:Java数据库:MySQL技术:SpringBootMyBatisVue工具:IDEA/Ecilpse、Navicat、Maven 系统展示 首页 后台登陆界面 管理员界面 摘要 基于Spring Boot的…...
Dropout、DropConnect、Standout...12种正则化变种,到底该用哪个?一份给炼丹师的避坑指南
Dropout变种全景指南:从理论到实战的12种策略深度解析 当你的神经网络在验证集上表现不佳时,第一个跳入脑海的解决方案是什么?对于大多数从业者来说,Dropout无疑是正则化工具箱中的首选武器。但你是否知道,标准Dropout…...
OpenClaw+GLM-4.7-Flash:自动化代码审查工具
OpenClawGLM-4.7-Flash:自动化代码审查工具 1. 为什么需要自动化代码审查 作为一个长期与代码打交道的开发者,我深知代码审查的重要性。但现实情况是,团队中的代码审查往往成为瓶颈——要么因为人力不足导致积压,要么因为审查者…...
鸿蒙ArkTS项目避坑指南:从零搭建外卖应用时,我踩过的那些‘坑’
鸿蒙ArkTS实战避坑手册:外卖应用开发中的12个致命陷阱 第一次在DevEco Studio里看到ArkTS的语法高亮时,我以为这不过是又一个前端框架的变种——直到我的外卖应用项目在模拟器上连续崩溃了七次。作为从Android原生开发转向鸿蒙的"老手"&#x…...
HackRF玩家必备:PortaPack H2固件刷写与Mayhem固件配置全攻略
HackRF玩家进阶指南:PortaPack H2固件刷写与Mayhem实战配置 无线电爱好者们对HackRF的探索从未停止,而PortaPack H2扩展板的出现让这款开源SDR设备真正实现了"口袋实验室"的愿景。不同于市面上简单的使用说明,本文将带你深入理解Po…...
基于django+vue的智慧物业来访预约报修管理系统
目录功能模块划分核心业务功能特色功能设计技术实现要点扩展性设计项目技术支持源码获取详细视频演示 :文章底部获取博主联系方式!同行可合作功能模块划分 后台管理(Django) 用户权限管理:业主、物业管理员、维修人员…...
foobox-cn:让foobar2000从工具变身艺术品的终极美化方案
foobox-cn:让foobar2000从工具变身艺术品的终极美化方案 【免费下载链接】foobox-cn DUI 配置 for foobar2000 项目地址: https://gitcode.com/GitHub_Trending/fo/foobox-cn 你是否还在忍受foobar2000那过于朴素的默认界面?是否觉得功能强大的播…...
实时手机检测模型应用场景:打电话检测、安防监控实战案例
实时手机检测模型应用场景:打电话检测、安防监控实战案例 1. 模型概述与技术优势 1.1 高性能检测框架DAMOYOLO 实时手机检测-通用模型基于DAMOYOLO-S框架开发,这是一种面向工业落地的高性能目标检测解决方案。相比传统YOLO系列方法,DAMOYO…...
2022 年 9 月青少年软编等考 C 语言四级真题解析
目录 T1. 最长上升子序列 思路分析 T2. 神奇的口袋 思路分析 T3. 滑雪 思路分析 T4. 删除数字 思路分析 T1. 最长上升子序列 题目链接:SOJ D1205 一个数的序列 b i b_i bi...
对于对话中的文本简化,OpenClaw 的压缩比和可读性如何平衡?
关于文本简化中压缩比与可读性的平衡,这其实是一个在工程实践中经常遇到的核心矛盾。OpenClaw 的处理方式,仔细推敲起来,背后反映的是一种偏向实用主义的权衡思路。 压缩比高,通常意味着文本被大幅度精简,只保留最核心…...
LibreTranslate模型部署优化指南:从技术痛点到落地实践
LibreTranslate模型部署优化指南:从技术痛点到落地实践 【免费下载链接】LibreTranslate Free and Open Source Machine Translation API. Self-hosted, offline capable and easy to setup. 项目地址: https://gitcode.com/GitHub_Trending/li/LibreTranslate …...
