重庆网站建设 cqhtwl,惠州技术支持网站建设,太平洋网站建设,wordpress 韩国 主题pod基本概念 (几种容器)
pod 是k8s最小的创建和运行单元
一个pod包含几个容器#xff0c;1个根容器/父容器/基础容器#xff0c;一个或者多个应用容器/业务容器#xff0c;pause容器
pod里面容器共享 network UTS IPC命令空间
k8s 创建的Pod 分为两种#xff1a;
自主…pod基本概念 (几种容器)
pod 是k8s最小的创建和运行单元
一个pod包含几个容器1个根容器/父容器/基础容器一个或者多个应用容器/业务容器pause容器
pod里面容器共享 network UTS IPC命令空间
k8s 创建的Pod 分为两种
自主式/静态pod不被控制器管理的pod没有自愈能力一旦pod挂掉不会被重新拉起。而且副本数量也不会因为达不到期望值而创建新的pod。
控制器管理的pod被控制器管理的pod有自愈能力一旦pod挂掉会被重新拉起。而且副本数量会因为达不到期望值而创建新的pod。
三种容器
pause容器 两大功能
给pod中的所有应用容器提供网络 (共享IP)和存储(共享存储)资源共享作为PID-1的进程 (intit进程)管理整个pod中容器组生命周期。
初始化容器 (init容器)
阻塞或者延迟应用容器的启动可以为应用容器事先提供好运行环境和工具多个init容器时串行启动的每个init容器都必须在下一个init容器启动前完成启动和退出。
应用容器 (main 容器
在所有init容器成功启动和退出后应用容器才会启动 并行启动的提供应用程序的业务。
pod 存在的意义
在一组容器作为一个单元的情况下难以对整体的容器简单地进行判断及有效地进行行动。比如一个容器死亡了 那么引入与业务无关的Pause容器作为Pod的基础容器以它的状态代表着整个容器组的状态这样就可以解决该问题。
Pod里的多个应用容器共享Pause容器的IP共享Pause容器挂载的Volume这样简化了应用容器之间的通信问题也解决了容器之间的文件共享问题。
镜像拉取的策略
pod镜像拉取策略imagePullPolicy三种
1、IfNotPresent 优先使用本地已存在的仓库如本地没有则从仓库镜像拉取。
2、Always总是从仓库拉取镜像无论本地是否已存在镜像。
3、Never总是不从仓库拉取镜像仅使用本地镜像。
pod 容器重启策略(restartPolicy) 三种 container在同一层
1、Always容器退出总是重启容器不管返回状态码如何默认的Pod容器重启策略。
2、Never容器退出时从不重启容器不管返回状态码如何
3、OnFailure仅在容器异常退出时状态码非0时会重启容器。
命令
应用容器
创建yaml文件 执行后查看pod状态
kubectl describe pod myapp-pod -n qqkubectl logs myapp-pod -c init-myservice -n qq 显示缺失文件
添加service文件
apiVersion: v1
kind: Service
metadata:name: myservice
spec:ports:- protocol: TCPport: 80targetPort: 9376apiVersion: v1
kind: Service
metadata:name: mydb
spec:ports:- protocol: TCPport: 80targetPort: 9377
加命名空间 查看pod状态 镜像拉取
创建yaml文件 查看pod状态
发现 Pod 中的容器在生命周期结束后由于 Pod 的重启策略为 Always容器再次重启了并且又重新开始拉取镜像。 修改yaml 文件 查看pod状态 资源限制cpu 内存
spec.containers[].resources.requests.cpu //定义创建容器时预分配的CPU资源spec.containers[].resources.requests ,memory //定义创建容器时预分配的CPU资源spec.containers[].resources.limits.cpu //定义创建容器时预分配的内存资源spec.containers[].resources.limits .memory //定义 cpu 的资源上限//定义内存的资源上限 kubectl describe nodes node01 查看资源占用 探针 (健康检查)存活就绪启动
存活探针判断容器是否运行正常如果探测失败则杀掉容器 (不是pod)容器会根据容器策略决定时否重启。
就绪探针判断pod是能够进入ready状态做好就收请求的准备如果探测失败就会进入notready状态并且service资源的endpoints中剔除service将不会把访问请求转发给这个pod。
启动探针判断容器是否会成功在探测成功转变为success之前其他探针都会处于失效状态。
三种探测方式
exec通过command设置执行在容器内执行的linux 命令来探测如果返回码为0则为探测成功。
httpget通过http get 请求范文指定的容器端口和url路径如果返回状态为200且 400则认为探测成功。
tcpsocket通过指定的端口发送TCP 连接如果端口无误 且三次握手成功 tcp连接成功则认为探测成功