pod资源到底是什么?11

刚才我们创建了一个资源叫做pod,这个pod现在是所有人处于运行状态,

image-20221027113655409

但是这个pod资源到底是什么?它是容器?

为什么我们在改配置文件的时侯需要加上这个?如下图所示

image-20221027113927316

我们来看一下,在pod资源里面跑了一个业务容器,nginx,看一下它的地址

image-20221027114603337

image-20221027114357950

跑在10.0.0.13上的容器的网段都是59网段,上图所示,回到master节点查看起的第一个容器,所以容器的ip地址为172.16.59.2,

image-20221027114920278

它所在的node节点名称是10.0.0.13,

image-20221027115046814

接下来我们在这上面curl 一下,看是否能访问,我们在里面跑了一个nginx,试一下,能访问。

image-20221027115501981

现在访问这个172.16.59.2这个ip容器地址,返回来了nginx服务,我访问的就是pod的ip地址,

接下来我们来看一下10.0.0.13node2节点上起了几个容器,docker ps,起了两个容器,

image-20221027115824358

image-20221027120112001

这两个容器之间有什么关系?

刚才访问nginx服务的时候用的是pod的ip地址,

image-20221027120438520

一个ip地址,但是有两个容器,

image-20221027120606246

image-20221027120723027

到底谁是这个ip地址,我们来查看一下,

image-20221027121519895

image-20221027121417396

image-20221027130125538

image-20221027130248138

另外一个容器没有ip,我们来看一下,

image-20221027130623978

image-20221027212304944

image-20221027130943279

直接回车,什么已没有

image-20221027131045181

image-20221027131134990

那是因为它的网络模式是一种什么类型,假如docker有4种网络类型,这里面它用的网络模式是container类型,

image-20221027131600102

image-20221027131757542

用的是谁的网络?

image-20221027132154552

它用的是pod的网络,隔离区的网络,他们两个共用网络,两个容器共用一个网络,之前讲网络类型的时候有这么种网络类型,他们共用网络,共用网络的一个特点就是这个端口谁先占就归谁,第一个容器他把pod起来之后,一个端口都不占,没有端口,

image-20221027132733834

image-20221027133116935

它这个服务仅仅是让它能够夯住,但是它不起服务

image-20221027133951760

在上面这里面它跑的就是服务了,

image-20221027134118410

为什么在k8s里面起一个pod资源,却要创建两个容器,对不对,为什么不直接起一个nginx?而非得起一个pod?

image-20221027134406651

我们的想法是直接起一个nginx就得了,调用一个nginx就行了,为什么多起了个pod,pod上面有ip,而nginx上面没有ip,前面讲过k8s有好多核心功能,这么多的核心功能光靠我们的nginx镜像能实现?

image-20221027135855872

你想让它支持k8s这么多的高级功能,你说这个镜像要不要做定制化的操作,需要,这就增加了你的学习成本,怎么让我还是使用以前的镜像,还能使用你的k8s的高级功能,用插件,插件的方式刚好用的,你不需要做任何方式k8s高级功能的处理,我这个容器帮你做好了,怎么把他们绑一块儿勒?

image-20221027141421373

怎么把他们绑一块儿勒?共用ip地址,

k8s支持这么多的高级功能,光靠我们的普通的nginx容器实现不了,所以我需要有一个容器能够实现这个功能,那这个容器就是这个pod,pod来实现k8s的这些高级功能。

image-20221027141743447

怎么把这两个容器绑一块,共用ip就行了,

image-20221027142205720

反正我pod不抢你nginx服务端口,你该用啥就是啥,我pod还能给你实现高级功能,

image-20221027143006374

所以我们平常说的pod资源,经常在k8s里面说的pod,都是pod资源,明白什么叫资源?pod资源不等于容器,一个pod资源里面至少会启动两个容器,一个叫基础容器,就是我们刚才说的pod容器,还有一个叫业务容器,刚才的业务容器叫nginx,也可以多个容器,在这里我们可以在加一个,我们把配置文件改改,

image-20221027143819387

image-20221027143947658

image-20221027144106804

接下来再来一个容器,4yy复制4行,现在这个里面有两个容器,

image-20221027200831034

两个容器需要用名字区分一下,我的私有仓库上有一个busybox的镜像,我记得测试的时候传了镜像到私有仓库上去,通过history|grep push查看一下,

image-20221027201159151

这个镜像默认的初始命令夯不住,那有没有办法让它夯住,2dd是删除两行命令的意思,可以用一些命令让它夯住,指定容器的初始命令是command,让它sleep 1000s,

image-20221027201745524

这儿就加了一个容器,

image-20221027201918763

我们先来创建create-f,指定文件创建,报错是为什么?

image-20221027202111780

command命令用错了,语法错误

image-20221027202333374

image-20221027202512999

上图这种写法不支持,

image-20221027202731455

image-20221027203101142

image-20221027203249248

再来创建一下,现在不是语法错误了,

image-20221027203351989

而是之前有个pod名称叫nginx,你在创建一个pod再叫nginx他们就打架了,这个名字是唯一的,所以在改这个配置文件的时候还记得要改名字name,

image-20221027203840876

标签labels咱们还没用上,后面再说,

在来创建一下,成功了。

image-20221027204106067

创建了一个叫test名字的pod,

在来get 一下pod列表,之前只有1/1的列表,现在有0/2,

image-20221027204303578

再来看一下,同时我们可以看到它调度到哪个节点上了,

image-20221027204559825

它调度的时候尽可能的公平,一人一个,现在有两个小弟可以干活,来了一个活,先分给他,在来了一个活,在分给他,这样就比较公平,

image-20221027204853700

这个pod资源里面起了几个业务容器,起了两个业务容器,一个pod基础容器,在10.0.0.12上面,你用docker ps你会看到看到几个容器?他们两个共用一个pod,所以这里面可以看到nginx的和busybox的重启数

image-20221027205434605

三个人的都是一个ip10.0.0.11,端口谁先占用就是谁的,ping这个ip地址,他们三个都能收到包,

image-20221027205735169

至于你访问哪个端口,那就是谁来接收这个,端口不会冲突,端口冲突的话,pod就起不来,直接就报冲突了,所以这里我把pod又改变了一下,

配置文件告诉你,一个pod里面可以跑多个容器,如下图所示

image-20221027210424904

 

原文地址:http://www.cnblogs.com/ypyyds/p/16833822.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性