Docker作为非常流行的容器技术,之前经常有文章说它被K8S弃用了,取而代之的是另一种容器技术containerd!其实containerd只是从Docker中分离出来的底层容器运行时,使用起来和Docker并没有啥区别,本文主要介绍下containerd的使用,希望对大家有所帮助!

containerd是一个工业级标准的容器运行时,它强调简单性、健壮性和可移植性。containerd可以在宿主机中管理完整的容器生命周期,包括容器镜像的传输和存储、容器的执行和管理、存储和网络等。

1、k8s的容器运行时架构

容器运行时(ContainerRuntime),运行于 kubernetes(k8s)集群的每个节点中,负责容器的整个生命周期。其中dockershim是目前应用最广的容器运行时,随着容器云的发展,越来越多的容器运行时涌现。为了解决这些容器运行时和 k8s 的集成问题,在 k8s1.5 版本中,社区推出了 CRI(ContainerRuntimeInterface,容器运行时接口),以支持更多的容器运行时。

2、CRI与OCI运行机制

CRI是kubernetes 定义的一组 gRPC 服务。Kubelet作为客户端,基于gRPC 框架,通过 Socket 和容器运行时通信。

它包括两类服务:镜像服务(ImageService)和运行时服务(Runtime Service)。镜像服务提供下载、检查和删除镜像的远程程序调用。运行时服务包含用于管理容器生命周期,以及与容器交互的远程调用。

OCI(OpenContainerInitiative,开放容器计划)定义了创建容器的格式和运行时的开源行业标准,包括镜像规范(ImageSpecification)和运行时规范(RuntimeSpecification)。

镜像规范定义了OCI镜像的标准。高层级运行时将会下载一个 OCI 镜像,并把它解压成 OCI 运行时文件系统包。

运行时规范则描述了如何从 OCI运行时文件系统包运行容器程序,并且定义它的配置、运行环境和生命周期。如何为新容器设置命名空间(namepsaces)和控制组(cgroups),以及挂载根文件系统等等操作。

3、k8s弃用docker的原因

2020年底,Kubernetes官方发布公告,宣布自v1.20起放弃对Docker的支持,届时用户将收到 Docker 弃用警告,并需要改用其他容器运行时。但 Docker 作为容器镜像构建工具的作用将不受影响,用其构建的容器镜像将一如既往地在集群中与所有容器运行时正常运转。

这里面说到了容器运行时,其实k8s要弃用的是dockershim这个容器运行时,而非docker, dockershim是Kubernetes的一个组件,主要目的是为了通过CRI操作Docker,具体逻辑情况下图:



4、dockershim、Containerd与CRI-O对比



我为大家准备了一份Kubernetes + Containerd的部署文档,请关注公众号山河编程,回复:docker 领取下载密码。

链接下载猛戳:https://pan.baidu.com/s/1Aj8iRQTkCetjAVnXsul3DA

最新文章

  1. ASP.NET Core CORS 简单使用
  2. 数据库实战案例—————记一次TempDB暴增的问题排查
  3. ArrayList实现线程的几种方法
  4. YHLMR009 交货单查询
  5. RTImageAssets 自动生成 AppIcon 和 @2x @1x 比例图片
  6. Ubuntu 修复windows启动项
  7. Linux 下一个很棒的命令行工具
  8. Android安全相关书籍汇总
  9. Android内存优化之——static使用篇
  10. css样式-ime-mode text-transform
  11. kubernetes进阶(04)kubernetes的service
  12. ABP新增模块可能遇到的问题
  13. Day 3-5 装饰器
  14. Swift5 语言指南(十一) 结构和类
  15. MonkeyRunner 模块
  16. Android开发之点击事件(Button)
  17. java使用正则表达式
  18. OSX下安装VMware虚拟机, 加载kali系统
  19. 【2】JMicro微服务-Hello World
  20. 基于centos系统安装pip模块

热门文章

  1. Qt开发技术:图形视图框架(二)场景QGraphicsScene、QGraphicsItem与QGraphicsView详解
  2. 广播 (broadcasting)
  3. 理解 this
  4. 三色标记法与读写屏障, G1工作过程
  5. CentOS:操作系统级监控及常用计数器解析---除CPU以外
  6. selenium css定位元素
  7. 性能分析之CPU分析-从CPU调用高到具体代码行(JAVA)
  8. 【VBA】单元格插入图片,单元格删除图片
  9. 如何在CentOS 7上搭建LAMP环境(使用YUM或编译)
  10. Spring MVC 到 Spring BOOT 的简化之路