|NO.Z.00122|——————————|CloudNative|——|KuberNetes&基础标签.V05|——|kubernetes.v05|pod操作|

一、kubernetes.pod
### --- pod概述

~~~     Pod是k8s中最小的单元
~~~     由一组、一个或多个容器组成,每个Pod还包含了一个Pause容器
~~~     pause容器时pod的父容器,主要负责僵尸进程的回收管理,
~~~     通过通过Pause容器可以使同一个Pod里面的多个容器共享存储、网络、PID、PIC等
### --- 查看docker启动的容器
~~~     它启动的时候会带着一个pause容器;
~~~     每个pod启动的时候都会带一个pause容器。和容器启动是一对一的。

[root@k8s-master01 ~]# docker ps
81657ef2ab08   registry.cn-hangzhou.aliyuncs.com/google_containers/pause-amd64:3.2   "/pause"                 4 days ago    Up 4 days                            k8s_POD_calico-node-77c2f_kube-system_eadbf066-d4e1-4664-81a3-b4d61fcc4cd2_0
二、pod架构
三、pod架构说明
### --- pod架构说明

~~~     # 这个Pod里面管理的是容器containerA、containerB、Pause镜像;
~~~     通过Pause镜像可以让这两个container去共享它的存储,网络等
~~~     加入containerA是Nginx,ContainerB是PHP;
~~~     # 在企业中部署PHP应用的时候,一个Pod里面起了2个容器,
~~~     一个是Nginx,一个是PHP,Nginx可能是接收前端的页面,有些PHP的页面要交给PHP去处理,
~~~     # 处理流程:
~~~     nginx节能访问的是PHP的sock文件,也有可能访问的是PHP的9000端口,
~~~     Nginx访问PHP就可以通过localhost:PHPport就可以访问PHP,没有网络带宽可以消耗。
~~~     而且它俩可以挂载同一个Vloume,就可以共享前端的页面或者前端的数据。
~~~     我们为什么不可以部署一个Container,这个Container里面部署两个进程,

~~~     # 一个nginx一个PHP呢?建议一个container里面最多起一个进程,
~~~     这样在做退出或者删除的时候不会对多个进程造成影响。所以可以引入Pod来管理我们的容器。
~~~     而且两个容器还有强一致的文件,假设containerA产生的文件containerB需要用,
~~~     可以共享一个volume可以实现文件共享。
~~~     所以说Pod是有一个或多个容器进行管理的。
四、为什么有了docker容器为什么还要引入Pod的概念呢
### --- 为什么有了docker容器为什么还要引入Pod的概念呢

~~~     因为一个应用不可能就是单个容器就可以支撑的,肯定是有很多微服务支撑这个应用的。
~~~     很可能有这种情况,就是A服务和B服务有一致的强依赖性,
~~~     就是两个服务之间的网络是没有延迟或者延迟特别小,而且A服务和B服务有数据的依赖性,
~~~     就是B服务可能会使用到B服务产生的文件,所以k8s去管理容器的话,
~~~     就不可能保证ContainerA和ContainerB一定在同一台宿主机上,
~~~     而且不能保证他两个容器能共享一个目录,特别是副本数特别大的时候,
~~~     而且不能保证ContainerA和ContainerB之间特别小的网路延迟去访问。
五、引入pod的必要性
### --- 引入pod的必要性

~~~     # 使用方向分析:可以保证相互依赖的或者由强依赖性的,
~~~     # 使用方向分析:对这个网络延迟比较高的容器部署在同一个宿主机上,可以提高性能,而且便于管理。
~~~     # 使用方向分析:Pod都有一个唯一的IP地址,这个IP地址就不会让它的端口号永远冲突的性质。
~~~     k8s方向分析:k8s是市面上最流行的一个编排工具,docker并不是唯一的容器技术。
~~~     k8s方向分析:最常用的是docker,CRI-O、Containerd、符合CRI标准的runtimes容器;
~~~     k8s方向分析:在k8s中很少去操作docker容器的,操作最多的是Pod。
六、定义一个Pod
### --- 定义一个Pod

~~~     # 一般都是使用yaml文件去创建的,
~~~     当然也可以使用kubectl run命令去创建Pod或者创建其它的资源,
~~~     但是yaml文件会有一个追溯的流程,
~~~     而且yaml可以写到不同的namespace中,且yaml文件中命令特别多,
~~~     若是使用命令可能命令会特别长。
~~~     yaml和Jenkinsfile为什么选择yaml文件:yaml文件看着清晰明了,
~~~     是按照空格去区分的,对齐的属于同一级别的,以横杠-开头的说明是一个切片;

 
 
 
 
 
 
 
 
 

Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
                                                                                                                                                   ——W.S.Landor

 

 

posted on   yanqi_vip  阅读(27)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示