Kubernetes vs Docker:了解2021年的容器
- 前言 -
- 什么是容器? -
- 什么是 Docker? -
管理容器生命周期。 代理请求来回容器。 监视和记录容器活动。 安装共享目录。 对容器设置资源限制。 生成镜像。Dockerfile是构建容器镜像的格式文件。 从注册处推送和拉取图像。 在第一次迭代中,Docker 使用 Linux 容器 (LXC) 作为运行时间后端。随着项目的发展,LXC被容器所取代,docker自己的实施。现代docker安装分为两个服务:containerd,负责管理容器;dockerd,处理剩余的部分。
- 什么是 Kubernetes? -
吊舱:吊舱是共享内存、CPU、存储和网络等资源的逻辑容器组。 自动缩放:Kubernetes 可根据需要启动和停止吊舱,从而自动适应不断变化的工作负载。 自我修复:容器在故障时被监控并重新启动。 负载均衡:请求分布在健康的可用吊舱上。 推出:kubernetes支持自动推出和回滚。使 Canary 和 Blue-Green 等复杂程序变得微不足道。我们可以将Kubernetes的架构视为两架飞机的组合:
- 容器格式 -
定义镜像二进制格式的镜像规范。 描述如何拆开和运行容器的运行时规范。OCI 维护称为runc的参考实现。容器和 CRI-O 都使用背景中的流体生成容器。OCI 标准带来了不同容器解决方案之间的互操作性。因此,一个系统内置的图像可以在任何其他合规堆栈中运行。
- Docker VS Kubernetes -
- 弃用 Dockershim -
- 那么,为什么要改变呢? -
- 我需要改变什么? -
使用Docker特定的日志记录和监视。即,从日志中解析 Docker 消息或投票 Docker API。 使用Docker优化。 运行依赖docker CLI 的脚本。 运行docker命令在特权吊舱。例如:构建镜像。有关替代解决方案,请参阅卡尼科等项目。docker build 使用docker工人设置。 运行窗口容器。容器确实在 Windows 中工作, 但它的支持水平还没有达到 Docker 的。目标是通过集装箱版本 1.20为 Windows 提供稳定的容器释放。 如果您在 AWS EKS、Google GKE 或 Azure AKS 等云提供商上使用托管集群,请在 Docker 支持消失之前检查您的集群是否使用了支持的运行时。有些云供应商落后几个版本,因此您可能有更多的时间来计划。因此,请咨询您的提供商。举个例子,谷歌云宣布,他们正在改变默认运行时从Docker到容器的所有新创建的工人节点,但你仍然可以选择Docker。
切换到容器 切换到CRI-O 或者,如果你想继续使用Docker过去的版本1.23,按照cri-dockerd项目,它计划保持Docker作为一个可行的运行时选择。
评论