K8s容器运行时,移除Dockershim后存在哪些疑惑?
大家好,我是秋意零。
K8s版本截止目前(24/09)已经发布到了1.31.x版本。早在K8s版本从1.24.x起(22/05),默认的容器运行时就不再是Docker了或者说Dockershim。
最直接的原因,就是影响了性能。因为K8s调用Docker中Containerd容器运行时需要一个中间层Dockershim,造成了多余的性能和系统稳定性问题。具体是怎么个事呢,这里就来捋上一捋!同时介绍runc、ctr、crictl、nerdctl都是怎么个事!
内心OS:1.24第一版本早在22/05就发布了,距今已经过去2年多了。现在才来捋属实感觉有点晚了,不知有没有朋友和我一样一直没有捋明白呢😬!
如果是 那就接着往下看,有用点个赞、评论明白了😘!
Containerd 简介
官方解释:containerd 是一种行业标准的容器运行时,强调简单性、健壮性和可移植性。它可作为 Linux 和 Windows 的守护进程使用,可以管理其主机系统的完整容器生命周期:镜像传输和存储、容器执行和监督、底层存储和网络附件等。
一句话总结:Containerd 是一种基于 CRI 的容器运行时,用于管理容器的生命周期。
PS:
-
容器运行时:是负责运行容器的软件
-
CRI:这个接口是 Kubernetes 与容器运行时交互的标准接口
捋上一捋
1)为什么不继续使用Docker作为运行时
Docker并不是一个“物件”,他是一个完整技术栈。它技术栈中有一个叫做 “containerd” 的部件本身,才是一个容器运行时。
执