k8s笔记(4)-- pod生命周期和健康状态探测

本文深入探讨了Kubernetes Pod的生命周期,包括初始化、main container的启动以及pod的几种状态。此外,还详细讲解了Pod的健康状态探测,如livenessProbe、readinessProbe和startupProbe,阐述了它们在容器健康检查和故障恢复中的作用,以及各种探测方法的使用场景和区别。
摘要由CSDN通过智能技术生成

前言

本文主要系统的介绍pod和pod健康状态探测。探测类型包括liveness,readiness和startup。

什么是pod

Pod是Kubernetes创建或部署的最小且最简单的基本单位,Pod表示在集群上运行的进程。

Pod封装了一个或多个运行应用程序的容器,存储资源,唯一的网络IP和控制容器运行方式的一些选项。一般会将docker作为k8s的容器运行时(container runtime),不过也可以使用其他容器运行时,如CRI-O(k8s项目),Containerd(docker项目)等。

容器运行时负责真正管理镜像和容器的生命周期。

pod使用方式

查看pod的yaml参数:kubectl explain pods.spec.containers

  • 运行单个容器的容器: 一个pod存在一个容器;

  • 运行多个需要协同工作的容器的pod:一个pod存在多个容器协同工作,该应用程序由紧密耦合且需要共享资源的多个位于同一地点的容器组成。多个容器是紧耦合的,共享网络和存储,通过lo接口互相通信,对外呈现为一个单独的pod实体。如果想水平扩展pod,可通过Controller Manager复制多个pod提供负载均衡服务。

pod生命周期

pod生命周期
pod生命周期:

  • 初始化容器阶段会初始化pod中每一个容器,容器是串行执行的。
  • 启动main container,在main container刚刚启动后就可执行postStart指令。
  • 在整个main container运行周期中做两类健康探测:liveness probe(存活探测)和readiness probe(就绪探测)
  • 在main container结束前可以执行preStop命令

lifestyle

创建pod时,可以用lifecycle来配置容器在运行前和关闭前的一些动作。
kubectl explain pod.spec.containers.lifecycle
lifecycle有两个钩子函数:

  • postStart:容器创建成功后,运行前的任务,用于资源部署、环境准备等。
  • preStop:在容器被终止前,用于优雅的关闭应用程序、通知其他系统等。
postStart

创建容器后立即调用PostStart。如果处理程序失败,容器将根据其终止并重启策略重新启动。直到preStart完成才会进入下一步,如livenessProbe。

# kubectl explain pod.spec.containers.lifecycle.postStart
# cat preStart-pod.yaml 
apiVersion: v1
kind: Pod
metadata:
        name: perstart-exec-pod
        namespace: default
spec:
        containers:
                - name: perstart-exec-container
                  image: busybox:latest
                  imagePullPolicy: IfNotPresent
                  lifecycle:
                        postStart:
                                exec:
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值