K8S-pod概念

基本概念

1、容器的本质到底是什么?容器的本质是进程。
2、容器镜像呢?类似这个系统里的“.exe”安装包。
3、Kubernetes呢?Kubernetes 就是操作系统!
4、Pod是什么呢?Pod是Kubernetes 里的原子调度单位。Kubernetes 项目的调度器,是统一按照 Pod 而非容器的资源需求进行计算的。

进程组

在一个真正的操作系统里,进程并不是“孤苦伶仃”地独自运行的,而是以进程组的方式,“有原则地”组织在一起。实际上,一个运行在虚拟机里的应用,哪怕再简单,也是被管理在 systemd 或者 supervisord 之下的一组进程,而不是一个进程。这跟本地物理机上应用的运行方式其实是一样的。这也是为什么,从物理机到虚拟机之间的应用迁移,往往并不困难。

容器的单进程模型

容器是“单进程模型”。一个容器永远只能管理一个进程。更确切地说,一个容器,就是一个进程。这是容器技术的“天性”,不可能被修改。所以,将一个原本运行在虚拟机里的应用,“无缝迁移”到容器中的想法,实际上跟容器的本质是相悖的。

Pod的本质

**Pod,实际上是在扮演传统基础设施里“虚拟机”的角色;**而容器,则是这个虚拟机里运行的用户程序。所以下一次,当你需要把一个运行在虚拟机里的应用迁移到 Docker 容器中时,一定要仔细分析到底有哪些进程(组件)运行在这个虚拟机里。然后,你就可以把整个虚拟机想象成为一个 Pod,把这些进程分别做成容器镜像,把有顺序关系的容器,定义为 Init Container。这才是更加合理的、松耦合的容器编排诀窍,也是从传统应用架构,到“微服务架构”最自然的过渡方式。

你可能感兴趣的:(K8S-pod概念)