Pod的生命周期及状态

POD启动过程及运行过程

Pod中主容器运行之间会运行一系列的pod来保证主容器可正常运行

 

Pod运行过程中用根据就绪探针和存活探针来检测Pod是否可用

Pod启动过程如下

 

 

 Pause容器网络和数据卷初始化

 Init容器,完成初始化的相关工作

Init容器特点:

  • Init 容器总是运行到完成为止
  • Init容器串行执行,上一个容器执行完成,下一个容器执行开始
  • Init容器失败,当restartPolicy为never POD不会重启;当值为always POD不断重启,直到Init容器成功为止

Init容器优势:

  • Init 容器具有应用程序单独的镜像,具有的优势
  • 包含并运行实用工具
  • 使用工具定制化代码来安装
  • 应用程序镜像可以分离创建的角色
  • 提供了简单阻塞延迟应用容器的启动方法,直到满足先决条件

注意:Pod重启 Init容器必现重新执行

Pod探针

探针:对容器执行定期诊断

探针检测的方式主要包括

  ExecAction:在容器中执行指定命令,退出返回0,诊断成功

  TcpSocketAction:指定端口上的容器的IP地址TCP检查,端口打开,诊断成功

  HTTPGetAction :对指定端口和路径上的容器IP地址执行HTTP Get请求,响应状态码在200且小于400之间,诊断成功

  诊断结果

  成功:通过了诊断

  失败:容器未通过诊断

  未知:诊断失败,不采取行动

Pod常用的探针

  • LivenessProbe:指示容器是否正在运行,容器存活探针,失败,kublet杀死容器,根据restartPolicy值选择是否重启。如果容器不提供存活探针默认为Success
  • ReadinessProbe:指示容器是否准备好服务请求,若失败断点控制器将从Pod匹配的所有service的端点中删除该Pod的IP地址,初始化完成之前状态默认为Faliure。如果容器不提供就绪探针默认为Success

常见的pod状态 

  • Pending Pod已被k8s系统接受,但是1个或者多个容器镜像尚未被出创建
  • Running 该Pod已被绑定到一个节点,Pod中所有容器被创建
  • Succeeded Pod中容器被成功终止,并且不会再重启
  • Failed Pod的容器已终止完,至少有个容器因为失败终止,即容器以非0状态退出或者被系统终止
  • Unknown 无法取得Pod状态,通常是因为与pod所在主机通信失败

 

posted @ 2021-11-15 21:37  无忧暴富  阅读(261)  评论(0编辑  收藏  举报