检查弃用Dockershim是否对你有影响
Kubernetes的
dockershim
组件使得你可以把Docker用作Kubernetes的容器运行时。在Kubernetesv1.24版本中,内建组件
dockershim
被移除。
本页讲解你的集群把Docker用作容器运行时的运作机制,并提供使用
dockershim
时,它所扮演角色的详细信息,继而展示了一组操作,可用来检查弃用
dockershim
对你的工作负载是否有影响。
检查你的应用是否依赖于Docker

即使你是通过Docker创建的应用容器,也不妨碍你在其他任何容器运行时上运行这些容器。这种使用Docker的方式并不构成对Docker作为一个容器运行时的依赖。
当用了别的容器运行时之后,Docker命令可能不工作,或者产生意外的输出。下面是判定你是否依赖于Docker的方法。
Docker依赖详解
容器运行时是一个软件,用来运行组成KubernetesPod的容器。Kubernetes负责编排和调度Pod;在每一个节点上,kubelet使用抽象的容器运行时接口,所以你可以任意选用兼容的容器运行时。
在早期版本中,Kubernetes提供的兼容性支持一个容器运行时:Docker。在Kubernetes后来的发展历史中,集群运营人员希望采用别的容器运行时。于是CRI被设计出来满足这类灵活性需求–而kubelet亦开始支持CRI。然而,因为Docker在CRI规范创建之前就已经存在,Kubernetes就创建了一个适配器组件dockershim。dockershim适配器允许kubelet与Docker交互,就好像Docker是一个CRI兼容的运行时一样。
切换到Containerd容器运行时可以消除掉中间环节。所有相同的容器都可由Containerd这类容器运行时来运行。但是现在,由于直接用容器运行时调度容器,它们对Docker是不可见的。因此,你以前用来检查这些容器的Docker工具或漂亮的UI都不再可用。
你不能再使用或
dockerinspect
命令来获取容器信息。由于你不能列出容器,因此你不能获取日志、停止容器,甚至不能通过
dockerexec
在容器中执行命令。
你仍然可以下载镜像,或者用
dockerbuild
命令创建它们。但用Docker创建、下载的镜像,对于容器运行时和Kubernetes,均不可见。为了在Kubernetes中使用,需要把镜像推送(push)到某镜像仓库。
发表评论