当前位置: 首页 > Linux

再见码头工人!5分钟改造containerd!

时间:2023-04-07 00:04:41 Linux

摘要Docker是一种非常流行的容器技术。之前的文章经常说被K8S抛弃,换成另一种容器技术containerd!实际上,containerd只是从Docker中分离出来的底层容器运行时。在使用上和Docker没什么区别。本文主要介绍containerd的使用。希望对大家有所帮助!containerd简介containerd是一个行业标准的容器运行时,它强调简单性、健壮性和可移植性。containerd可以管理宿主机中完整的容器生命周期,包括容器镜像的传输和存储,容器、存储和网络的执行和管理等。Dockervscontainerdcontainerd是一个从Docker中fork出来的项目,可以用作低级容器运行时,现在它是Kubernetes容器运行时的更好选择。不仅是Docker,很多云平台都支持containerd作为底层容器运行时,具体参考下图。K8SCRIK8S发布了CRI(ContainerRuntimeInterface),统一了容器运行时接口。任何支持CRI的容器运行时都可以作为K8S的底层容器运行时。为什么K8S放弃使用Docker作为容器运行时而使用containerd?如果使用Docker作为K8S容器运行时,kubelet需要先通过dockershim调用Docker,再通过Docker调用containerd。如果使用containerd作为K8S容器运行时,由于containerd内置了CRI插件,kubelet可以直接调用containerd。使用containerd不仅可以提高性能(调用链变短),还可以减少资源占用(Docker不是纯粹的容器运行时,而是有很多其他的功能)。使用containerd如果你之前使用过Docker,你只需要花5分钟来学习containerd。接下来,让我们学习如何使用containerd。在上一篇《据说只有高端机器才配运行K8S,网友:1G内存的渣渣跑起来了!》中,我们安装了K3S。由于K3S默认使用containerd作为容器运行时,我们只要安装K3S就可以使用;其实我们只需要将之前使用的docker命令改成crictl命令即可。操作containerd,比如查看所有运行中的容器;crictlps复制代码CONTAINERIMAGECREATEDSTATENAMEATTEMPTPODID4ca73ded41bb63b0b04aa3473flmRunninghe不到一秒2021103f00588723bb5767a81954296a6d5035e2d大约一分钟前运行coredns1af887263bd869a5e34c24be3710346349a1a640大约一分钟前运行nginx189defc6008501复制代码查看所有图像;crictlimages复制代码IMAGETAGIMAGEIDSIZEdocker.io/library/nginx1.100346349a1a64071.4MBdocker.io/rancher/coredns-coredns1.8.0296a6d5035e2d12.9MBdocker.io/rancher/klipper-helmv0.4.33b0b04aa3473f50.7MBdocker.io/rancher/local-path-provisionerv0.0.14e422121c9c5f913.4MBdocker.io/rancher/metrics-serverv0.3.69dd718864ce61.mbiodoc/rancherpause3.1da86e6ba6ca19327kB复制代码,进入容器执行bash命令。这里需要注意的是,只能使用容器ID,不支持容器名称;crictlexec-ita5e34c24be371/bin/bash复制代码查看容器中应用资源使用情况,可以发现占用很低339B16抄代码总结从Docker到containerd的改造非常简单,基本没有门槛。只要把之前Docker命令中的docker改成crictl就基本一样了。果然是同一家公司生产的东西,用法也是一样的。所以不管K8S是否抛弃Docker,对我们开发者的使用基本没有影响!参考:《2020最新Java基础精讲视频教程和学习路线!》链接:https://juejin.cn/post/693782...