K8S为什么需要POD?

POD是什么?

       pod是Kubernetes项目中最小的API对象,也可说是Kubernetes项目中的原子调度单位。在通俗的概念里,pod是一个容器池,在这个池子里我们可以运行很多个容器,看起来就像虚拟机里可以运行很多服务一样。但在本质上,pod跟虚拟机几乎没有任何相似之处。为什么这样说呢?还要从容器的原理来看,毕竟pod中是运行了一个或多个容器的“组合”。

容器原理

    容器其实是一种沙盒技术。顾名思义,沙盒就像是一个箱子一样,把我们所写的应用装起来。这样,不同箱子里的应用会因为有箱子边界的限制而互不干扰,我们可以将其“搬到”任何宿主机上随意运行。这种边界技术的实现得益于Linux系统的Cgroup和Namespace技术。具体例子如下:

#我们在宿主机上运行一个容器
docker run -it busybox /bin/sh
#这时我们进入了容器中,查看一下容器中的进程
 ps
PID  USER   TIME COMMAND
  1 root   0:00 /bin/sh
  10 root   0:00 ps

      从以上代码可以看出,当我们运行容器的时候,容器最先运行的进程是/bin/sh,它是容器的1号进程,而且这个容器里面只有两个进程,这与我们在宿主机中看到的情况是截然不同的,这就说明这个容器的环境已经与宿主机的环境完全隔离开了。这是怎样实现的呢?其实如果这时你重新打开一个shell查看宿主机上的ps 进程就会发现,我们进入容器的exec命令在宿主机上的pid跟容器内的pid是不一样的,这是因为我们要通过 Docker 把这个 /bin/sh 程序运行在一个容器当中时,docker会使用namespace技术重新计算进程的编

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值