容器技术概念入门篇 (5讲)

05 | 白话容器基础(一):从进程说开去

容器技术概念入门篇 (5讲)

 容器技术概念入门篇 (5讲)

容器技术概念入门篇 (5讲)

 容器技术概念入门篇 (5讲)

 容器技术概念入门篇 (5讲)

容器技术概念入门篇 (5讲)

容器技术概念入门篇 (5讲)

 容器技术概念入门篇 (5讲)

  Linux Cgroups 就是 Linux 内核中用来为进程设置资源限制的一个重要功能。

 容器技术概念入门篇 (5讲)

 一个正在运行的 Docker 容器,其实就是一个启用了多个 Linux Namespace 的应用进程,而这个进程能够使用的资源量,则受 Cgroups 配置的限制。这也是容器技术中一个非常重要的概念,即:容器是一个“单进程”模型。

讲解了 Linux 容器最基础的两种技术:Namespace 和 Cgroups。希望此时,你已经彻底理解了“容器的本质是一种特殊的进程”这个最重要的概念。

容器技术概念入门篇 (5讲)

 容器技术概念入门篇 (5讲)

 Docker 在镜像的设计中,引入了层(layer)的概念。也就是说,用户制作镜像的每一步操作,都会生成一个层,也就是一个增量 rootfs。

容器技术概念入门篇 (5讲)

 容器技术概念入门篇 (5讲)

 一个“容器”,实际上是一个由 Linux Namespace、Linux Cgroups 和 rootfs 三种技术构建出来的进程的隔离环境。

 容器技术概念入门篇 (5讲)

 容器技术概念入门篇 (5讲)

 在常规环境下,这些应用往往会被直接部署在同一台机器上,通过 Localhost 通信,通过本地磁盘目录交换文件。而在 Kubernetes 项目中,这些容器则会被划分为一个“Pod”,Pod 里的容器共享同一个 Network Namespace、同一组数据卷,从而达到高效率交换信息的目的。

容器技术概念入门篇 (5讲)

 从容器这个最基础的概念出发,首先遇到了容器间“紧密协作”关系的难题,于是就扩展到了 Pod;有了 Pod 之后,我们希望能一次启动多个应用的实例,这样就需要 Deployment 这个 Pod 的多实例管理器;而有了这样一组相同的 Pod 后,我们又需要通过一个固定的 IP 地址和端口以负载均衡的方式访问它,于是就有了 Service。

相关推荐