一、Pod的基本概念

1.Pod是k8s中最小的部署单元;

2.一个Pod中包含一组container(一个或多个容器);

3.一个Pod中的所有容器共享网络命令空间;

4.Pod的生命周期是短暂的。


二、Pod与Docker区别

1.Pod是多进程设计:一个Pod里可以有多个容器,可以运行多个应用程序;

2.容器是单进程设计:一个容器里运行一个应用程序,守护进程可以确保启动多个容器;

3.Pod的存在意义:为了亲密性应用

 3.1 两个应用之间进行交互。比如一个应用读、一个应用负责写,放在一个Pod更加合理;

 3.2 网络之间的调用,同一个Pod里不需要通过ip进行调用;

 3.3 两个应用之间需要频繁调用,确保性能更高。


三、Pod实现机制

1.共享网络

 实现机制:

 第1步,创建Pause容器(info容器或者叫根容器);

 第2步,每当创建一个业务容器时,都会将新的业务容器加入到Pause容器中,在同一个ns中实现网络的共享;在Pause容器中,会独立出一个ip、mac以及port。

在这里插入图片描述


2.共享存储

 Pod持久化数据:日志数据、业务数据等等;

 共享存储的好处:当节点1上的Pod挂掉,飘到节点2,需要做持久化存储,保证数据的高可用性;

 需要用到数据卷Volume;

在这里插入图片描述


3.共享网络与共享存储示例:

在这里插入图片描述
这里write容器执行完shell就挂了,所以过了一会儿就进不去了,write容器进入无限的重启模式;read容器由于有进程挂起,所以还是可以进入容器的。

在这里插入图片描述

进入容器的命令,其中,一个pod中有多个容器则必须用-c指明是进入哪一个容器:

kubectl exec -it share-pod -c write/read – bash -il

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐