Containerd 的前世今生和级入门教程
https://mp.weixin.qq.com/s/DhLmd9tv88-Vbk6dwx3umg
https://fuckcloudnative.io/posts/getting-started-with-containerd/
https://fuckcloudnative.io/
目录
1. Containerd 的前世今生
2. Containerd 架构
3. Containerd 安装
安装依赖
下载并解压 Containerd 程序
生成配置文件
镜像加速
存储配置
OOM
Systemd 配置
4. ctr 使用
镜像
容器
任务
命名空间
Containerd + Docker
1. Containerd 的前世今生
很久以前,Docker 强势崛起,以“镜像”这个大招席卷全球,对其他容器技术进行致命的降维打击,使其毫无招架之力,就连 Google 也不例外。Google 为了不被拍死在沙滩上,被迫拉下脸面(当然,跪舔是不可能的),希望 Docker 公司和自己联合推进一个开源的容器运行时作为 Docker 的核心依赖,不然就走着瞧。Docker 公司觉得自己的智商被侮辱了,走着瞧就走着瞧,谁怕谁啊!
很明显,Docker 公司的这个决策断送了自己的大好前程,造成了今天的悲剧。
紧接着,Google 联合 Red Hat、IBM 等几位巨佬连哄带骗忽悠 Docker 公司将 libcontainer
捐给中立的社区(OCI,Open Container Intiative),并改名为 runc
,不留一点 Docker 公司的痕迹~~
这还不够,为了彻底扭转 Docker 一家独大的局面,几位大佬又合伙成立了一个基金会叫 CNCF
(Cloud Native Computing Fundation),这个名字想必大家都很熟了,我就不详细介绍了。CNCF 的目标很明确,既然在当前的维度上干不过 Docker,干脆往上爬,升级到大规模容器编排的维度,以此来击败 Docker。
Docker 公司当然不甘示弱,搬出了 Swarm 和 Kubernetes 进行 PK,最后的结局大家都知道了,Swarm 战败。然后 Docker 公司耍了个小聪明,将自己的核心依赖 Containerd
捐给了 CNCF,以此来标榜 Docker 是一个 PaaS 平台。
很明显,这个小聪明又大大加速了自己的灭亡。
巨佬们心想,想当初想和你合作搞个中立的核心运行时,你死要面子活受罪,就是不同意,好家伙,现在自己搞了一个,还捐出来了,发生甚莫事了?
这好吗?
这不好
也罢,这倒省事了,我就直接拿 Containerd
来做文章吧。
首先呢,为了表示 Kubernetes 的中立性,当然要搞个标准化的容器运行时接口,只要适配了这个接口的容器运行时,都可以和我一起玩耍哦,第一个支持这个接口的当然就是 Containerd
啦。至于这个接口的名字,大家应该都知道了,它叫 CRI(Container Runntime Interface)。
这样还不行,为了蛊惑 Docker 公司,Kubernetes 暂时先委屈自己,专门在自己的组件中集成了一个 shim
(你可以理解为垫片),用来将 CRI 的调用翻译成 Docker 的 API,让 Docker 也能和自己愉快地玩耍,温水煮青蛙,养肥了再杀。。。
就这样,Kubernetes 一边假装和 Docker 愉快玩耍,一边背地里不断优化 Containerd 的健壮性以及和 CRI 对接的丝滑性。现在 Containerd 的翅膀已经完全硬了,是时候卸下我的伪装,和 Docker say bye bye 了。后面的事情大家也都知道了~~
Docker 这门技术成功了,Docker 这个公司却失败了。
2. Containerd 架构
时至今日,Containerd 已经变成一个工业级的容器运行时了,连口号都有了:超简单!超健壮!可移植性超强!
当然,为了让 Docker 以为自己不会抢饭碗,Containerd 声称自己的设计目的主要是为了嵌入到一个更大的系统中(暗指 Kubernetes),而不是直接由开发人员或终端用户使用。
事实上呢,Containerd 现在基本上啥都能干了,开发人员或者终端用户可以在宿主机中管理完整的容器生命周期,包括容器镜像的传输和存储、容器的执行和管理、存储和网络等。大家可以考虑学起来了。
学习 Containerd 最好的时机是关注公众号 云原生实验室 后,其次是现在,看完了再关注公众号也不迟
1. Containerd 的前世今生 很久以前,Docker 强势崛起,以"镜像"这个大招席卷全球,对其他容器技术进行致命的降维打击,使其毫无招架之力,就连 Google 也不例 ... 导读 该篇文章可以看作是我研一如何入门深度学习的一个大总结,本人本科专业为软件工程,硕士期间研究方向为基于深度学习的图像分割,跨度相对而言不算太大.如果你对如何入门深度学习还很迷茫的话,那么请看下去吧 ... 什么是微服务网关 SpringCloud Gateway是Spring全家桶中一个比较新的项目,Spring社区是这么介绍它的: 该项目借助Spring WebFlux的能力,打造了一个API网关.旨 ... 什么是微服务网关 SpringCloud Gateway是Spring全家桶中一个比较新的项目,Spring社区是这么介绍它的: 该项目借助Spring WebFlux的能力,打造了一个API网关.旨 ... Python 是一门开源免费.通用型的脚本编程语言,它上手简单,功能强大,坚持「极简主义」. Python 类库(模块)极其丰富,这使得 Python 几乎无所不能,不管是传统的 Web 开发.PC ... 本文使用java的IDEA和visual studio2017来详细的一步一步演示java的JNI构建过程(eclipse+vs2017的教程在文末) 1.打开java的IDEA,file->n ... 公众号:尤而小屋 作者:Peter 编辑:Peter Scikit-learn是一个非常知名的Python机器学习库,它广泛地用于统计分析和机器学习建模等数据科学领域. 建模无敌:用户通过scikit ... 文章目录 一.初识ElasticSearch 二.安装Elasticsearch 2.1 创建网络 2.2 下载资源/加载镜像 2.3 运行 2.4 部署kibana 2.4.1 部署 2.5 安装I ... 来源:官方博客 翻译:PyTorch 开发者社区(微信公众号) 今天的机器学习需要分布式计算.无论是训练网络.调整超参数.服务模型还是处理数据,机器学习都是计算密集型的,如果没有访问集群,速度会非常慢 ...Containerd 的前世今生和级入门教程相关推荐
最新文章
热门文章