【Kubernetes 集群核心概念:Pod】pod生命周期介绍【五】

5.1 Pod生命周期

Pod的生命周期指的是从Pod创建到终止的整个过程。它分为以下两种常见情况:

  • 长期运行Pod: 例如运行HTTP服务的Pod,它在正常情况下会一直运行,但可以手动删除或终止。
  • 短期运行Pod: 例如执行计算任务的Pod,任务完成后自动终止。

5.1.1 容器启动

  1. 初始化容器(Init Containers):在Pod中的主容器启动之前,初始化容器会先执行一些环境设置或初始化操作。
  2. 主容器启动:初始化完成后,Pod的主容器开始启动。
  3. Post-Start 操作:主容器启动后,会执行一个启动后钩子操作(PostStart Hook),用于启动后的一些任务。
  4. 健康检查:主容器启动后,Kubernetes会通过两种健康检查来确保容器的运行状态:
    • 存活状态检查(Liveness Probe):检查容器是否存活,如果失败,Kubernetes会尝试重新启动容器。
    • 准备就绪检查(Readiness Probe):检查容器是否准备好接受请求。如果失败,Pod会被从服务端点列表中移除,直到恢复健康。

5.1.2 容器终止

  1. Pre-Stop 操作:在容器终止前,可以设置一个终止前钩子(PreStop Hook),执行容器终止前的清理工作。
  2. 强制终止:如果容器未能在规定时间内终止,Kubernetes会在大约30秒后强制终止容器。
  3. 容器重启:根据容器的重启策略,Pod的容器可能会被重启。

5.1.3 容器重启策略

  • Always:容器挂掉后会一直重启,这是默认策略。
  • OnFailure:容器状态为错误时才重启,即容器正常终止时不会重启。
  • Never:容器挂掉后不会重启。

对于Always策略,容器挂掉后会立即重启,如果再次失败,会延时重启,例如第一次失败后10秒重启,第二次失败后20秒重启,以此类推。


5.2 HealthCheck 健康检查

容器可能因为服务未启动或端口不正确等问题,无法正常运行。为此,Kubernetes提供了健康检查机制来检测Pod的状态。

5.2.1 Health Check方式

  • Liveness Probe(存活状态探测):检查容器是否仍然在运行。如果失败,kubelet会杀死容器并根据重启策略决定是否重启。
  • Readiness Probe(就绪型探测):检查容器是否准备好为外部请求提供服务。如果失败,Pod将被移除出服务的端点列表。
  • Startup Probe:检查容器中的应用是否已经启动。如果启动探测失败,kubelet会杀死容器,并按重启策略重启。

5.2.2 Probe 探测方式

方式 说明
Exec 执行命令
HTTPGet 通过HTTP请求指定URL路径
TCP 通过TCP连接指定端口
gRPC 使用gRPC执行远程过程调用,若返回状态为" SERVING"则认为探测成功

5.2.3 liveness-exec 示例

  1. 创建YAML文件:
apiVersion: v1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值