我是靠谱客的博主 辛勤毛衣,最近开发中收集的这篇文章主要介绍如何理解pod,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在k8s的世界里,经常遇见pod这一概念,你可能知道个大概,它是存在于k8s里最小的api对象,是最小的调度单位,它由多个容器组成,但它存在的具体意思,你说的清吗。

镜像类似于“.exe“的可执行文件,容器相当于可执行文件运行起来后的进程,而k8s可以理解为:操作系统。

有许多应用在运行的时候都会有多个进程在跑,同时由于socket通信和文件交换等,linux本身也有进程组的概念,假如现在我们没有pod一说,但还想运行这个应用应该怎么做呢。

方法一、我们可以将这些进程运行在同一个容器中,有一个PID=1的主进程就行了,但子进程挂掉的时候,你怎么知道呢

方法二、将这些进程单独做成容器,跑在同一台上,假如你跑了其中的5个进程,此时节点机上已经没有内存资源了,剩下的内存又必须跑着这台服务器上,那程序该怎样运行呢。

但有了pod后,这种问题就很好解决了,可以统一按照pod而非容器的资源进行计算的。

pod的本质:一组共享了某些资源的容器,pod里面所有的容器共享的是同一个network namespace,同时可以声明共享同一个volume。pod的实现需要使用一个中间容器,这个容器

叫做infra容器,它永远是pod中第一个被创建的容器,其它定义的容器都是通过join network namespace的方式,与infra容器关联在一起的,关联图见下:

 

在k8s里,这个infra使用的是一个特殊的镜像,叫pause镜像,用于处于”暂停“状态的容器,解压后的大小也只有100~200KB.

他们可以直接使用localhost进行通信

他们的网络设备和infra容器一样

pod的生命周期只和infra容器有关,和该pod中别的容器无关

流量进出都是通过infra容器

 

转载于:https://www.cnblogs.com/fengzhihai/p/10158490.html

最后

以上就是辛勤毛衣为你收集整理的如何理解pod的全部内容,希望文章能够帮你解决如何理解pod所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部