Pod和Docker

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Pod和Docker相关的知识,希望对你有一定的参考价值。

参考技术A 首先我们要明确一个概念,Kubernetes并不是只支持Docker这一个容器运行时,通过我的另一篇文章什么是Kubernetes的CRI-容器运行时接口介绍的内容,我们知道Kubernetes通过CRI这个抽象层,支持除Docker之外的其他容器运行时,比如rkt甚至支持客户自定义容器运行时。

这个问题不易回答的原因,是因为包含了这一组业务容器的逻辑单元,没有一个统一的办法来代表整个容器组的状态,这就是Kubernetes引入pod的概念,并且每个pod里都有一个Kubernetes系统自带的pause容器的原因,通过引入pause这个与业务无关并且作用类似于Linux操作系统守护进程的Kubernetes系统标准容器,以pause容器的状态来代表整个容器组的状态。

Kubernetes里的每个pod都有唯一的IP地址。Pod的IP地址可以通过命令kubectl describe pod来查看:

这个IP地址用来支持Kubernetes的底层网络借助Flannel,openswitch等虚拟二层网络技术来实现集群内任意两个pod之间的TCP/IP通信。也就是说,一个Pod内的容器与另外主机的pod容器能够直接通信。

Pod被创建后,会被Kubernetes master调度到某个具体的node上进行绑定:

上图中蓝色高亮区域代表的就是这个被观察的pod被分配到的node的名称。

pod和node绑定之后,node上的kubelet进程会对pod进行初始化操作,启动相关的Docker容器。

上图红色区域显示了Docker容器从正在从远端pull镜像,到pull完成,到创建Docker容器运行实例,到最终启动实例的状态迁移过程。

Docker和K8s实战——Docker镜像和容器,K8S的pod的关系和思想

https://www.youtube.com/watch?v=3I9PkvZ80BQ&t=13s&ab_channel=CNCF%5BCloudNativeComputingFoundation%5Dhttps://www.youtube.com/watch?v=3I9PkvZ80BQ&t=13s&ab_channel=CNCF%5BCloudNativeComputingFoundation%5D

当你在学习云原生相关的概念时,如果纯粹理论的学习,会有大致的一个概念在。但具体的作用的话需要自己实际去操作,但是操作完之后跟云原生的终极奥义会隔了一层纱,那层纱其实就是站在架构层面去把东西串联起来的一些点。通过这些点,才有众里寻他千百度,那人在灯火阑珊处的感觉。

上面的视频是国外的工程师做的,给孩子看的kubernetes的插画指南。

这个启蒙其实说实在的做的是真的好。自己根据资料还有视频自己按自己的理解整理了一下。

1.长颈鹿它是一个php应用,周围还有很多其他怪物应用,它很害怕想有自己的一个家,这个时候就有webserver。这个家需要持续生存下去的话,需要的就是webserver,一个文件系统,还有php引擎。家之于长颈鹿是web容器,是一个环境。

2、当长颈鹿要搬家了,容器鲸鱼叫它搬家,然后长颈鹿搬去了容器,但是鲸鱼就像无尽海洋里的一点点而已没有家的感觉。

3、这时候来了船长,开着一艘宇宙巨轮,其实kubernetes的希腊语就是船长。给了长颈鹿一个标签label,然后让它住进来pod这里,这是kubernetes的一个单元,就像豌豆荚里面的很多个豆荚里面的一个。

4、长颈鹿有自己的大家了,但是没有其他同伴,问船长要多点像他一样的同伴,replication controller包含一个pod模板,然后不限制地可以进行复制,然后长颈鹿和自己的副本们玩耍了好多天

5、长颈鹿玩腻了,想走动一下,船长说有service,service可以replication controller和pod之间进行通信,其他人可以通过船长找到长颈鹿。

6、有一天长颈鹿收到了其他朋友的礼物,没办法保存,船长告诉长颈鹿可以放到卷volume中。

7、长颈鹿也有需要洗澡的私人空间,这个时候需要船长提供了namespace,是船上的一个分组机制,针对replicationsets,volumes,pods。

镜像的话可以把1里面的长颈鹿之家看成一个镜像,一个原始的祖先模板一样,长颈鹿活蹦乱跳的时候,运行的时候,就是以容器的形式在运行了。容器跟船长的关系就跟3的流程一样,而且3提供的是最基本的东西,更重要的是船长还提供了很多其他的功能。满足了长颈鹿的很多需求情况。

自己再搭建完一个集群后,整个纱就能捅破,就能理解里面的思想和精华所在了。

以上是关于Pod和Docker的主要内容,如果未能解决你的问题,请参考以下文章

dockerdocker镜像和镜像发布方法

安装dockerdocker engine和docker desktop区别

DockerDocker常用命令

DockerDocker配置

安装dockerdocker engine和docker desktop区别

安装dockerdocker engine和docker desktop区别