k8s之pod探针

简介: k8s之pod探针

在Kubernetes中,探针(Probe)用于检查容器的健康状态。Kubernetes提供了三种类型的探针:存活探针(Liveness Probe)、就绪探针(Readiness Probe)和启动探针(Startup Probe)。这些探针可以用来监测容器的健康状况,并根据需要对容器进行重启、停止访问或将其加入负载均衡。

以下是每种类型的探针的简要说明:

  1. 存活探针(Liveness Probe): 存活探针用于检测容器是否处于运行状态。如果存活探针失败,Kubernetes会自动重启容器。存活探针通常用于监测应用程序内部的健康状态,例如检查关键进程是否在运行、数据库连接是否正常等。
  2. 就绪探针(Readiness Probe): 就绪探针用于检测容器是否已准备好接收流量。当就绪探针失败时,Kubernetes会将容器从服务的负载均衡中排除,直到就绪探针成功为止。就绪探针通常用于确保应用程序在开始接收流量之前已经完成了初始化、加载数据或建立必要的连接。
  3. 启动探针(Startup Probe): 启动探针用于检测容器是否已成功启动并变为可用状态。与存活探针和就绪探针不同,启动探针在容器启动时运行一次,而不是周期性地运行。如果启动探针失败,Kubernetes会重启容器。启动探针通常用于在应用程序初始化或长时间启动的情况下进行健康检查。

对于每种探针类型,您可以指定以下属性:

  • 探测方式(Probe Type): 可以选择使用HTTP探测、TCP套接字探测或命令执行探测。
  • 探测操作(Probe Action): 对于HTTP探测,您可以指定要发出的HTTP请求。对于TCP探测和命令执行探测,您可以定义相应的检查逻辑。
  • 探测周期(Probe Period): 指定多久执行一次探测操作。
  • 探测超时(Probe Timeout): 指定探测操作的超时时间。
  • 探测阈值(Probe Threshold): 指定连续多少次探测操作失败后被视为失败。

您可以通过在Pod的定义中使用livenessProbe、readinessProbe和startupProbe字段来添加探针配置。

下面是一个示例,展示了如何在Pod定义中添加探针配置:

apiVersion: v1
kind: Pod
metadata:
  name: my-app
spec:
  containers:
  - name: my-container
    image: my-image
    livenessProbe:
      httpGet:
        path: /health
        port: 8080
      initialDelaySeconds: 10   # running x秒之后才开始执行
      periodSeconds: 15   # 每隔x秒    
#      timeoutSeconds: 5              # x秒之后未返回结果,失败超时
#      successThreshold: 5            # 成功阈值,连续x次探测成功才算成功
#      failureThreshold: 5              # 失败阈值
    readinessProbe:
      tcpSocket:
        port: 8080
      initialDelaySeconds: 5
      periodSeconds: 10
    startupProbe:
      command:
        - "my-app"
        - "check"
      initialDelaySeconds: 20
      periodSeconds: 30

在上述示例中,我们定义了一个名为my-app的Pod,并在其中的my-container容器中配置了三种类型的探针。

  • 存活探针(Liveness Probe)使用HTTP GET请求来检查容器的存活状态。它将在容器启动后的10秒后开始执行第一次探测,每隔15秒执行一次。
  • 就绪探针(Readiness Probe)使用TCP套接字检查容器是否准备好接收流量。它将在容器启动后的5秒后开始执行第一次探测,每隔10秒执行一次。
  • 启动探针(Startup Probe)使用自定义命令检查容器是否成功启动。它将在容器启动后的20秒后开始执行第一次探测,每隔30秒执行一次。

根据您的应用程序和需求,您可以根据上述示例自定义探针配置。根据实际情况,可能需要根据应用程序的健康检查端点、监听的端口或特定命令来配置探针。

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
17天前
|
Kubernetes 应用服务中间件 nginx
【赵渝强老师】K8s中Pod探针的TCPSocketAction
在K8s集群中,kubelet通过探针(如livenessProbe、readinessProbe和startupProbe)检查容器健康状态。探针支持HTTPGetAction、ExecAction和TCPSocketAction三种检查方法。本文重点介绍TCPSocketAction,它通过尝试建立TCP连接来检测容器的健康状况。示例中创建了一个Nginx Pod,并配置了两个探针(readinessProbe和livenessProbe),它们每隔5秒检查一次容器的8080端口,首次检查在启动后10秒进行。若连接失败,容器将重启。视频讲解和命令演示进一步详细说明了这一过程。
150 83
|
28天前
|
Kubernetes 容器 Perl
【赵渝强老师】Kubernetes中Pod的探针
在K8s集群中,kubelet通过三种探针(存活、就绪、启动)检查Pod容器的健康状态。存活探针确保容器运行,失败则重启;就绪探针确保容器准备好服务,失败则从Service中剔除;启动探针确保应用已启动,失败则重启容器。视频讲解和图片详细介绍了这三种探针及其检查方法(HTTPGet、Exec、TCPSocket)。
【赵渝强老师】Kubernetes中Pod的探针
|
20天前
|
Kubernetes 网络协议 Shell
【赵渝强老师】K8s中Pod探针的ExecAction
在K8s集群中,kubelet通过三种探针(存活、就绪、启动)检查容器健康状态,支持HTTPGet、Exec和TCP检查方式。本文重点介绍ExecAction探针,通过在容器内执行Shell命令返回码判断健康状态,并附带视频讲解和实例演示,展示如何配置和使用ExecAction探针进行健康检查。
55 10
|
25天前
|
Kubernetes 应用服务中间件 nginx
【赵渝强老师】K8s中Pod探针的HTTPGetAction
在K8s集群中,kubelet通过探针(如livenessProbe、readinessProbe和startupProbe)检查容器健康状态。HTTPGetAction通过HTTP请求检查容器健康,返回状态码在200-400区间视为成功。示例中创建了基于Nginx镜像的Pod,并配置存活探针,每5秒检测一次。通过命令操作验证探针功能,展示了Pod的健康检查机制。 视频讲解:[Bilibili](https://www.bilibili.com/video/BV1DTtueTEMM)
47 15
|
3月前
|
存储 Kubernetes Docker
【赵渝强老师】Kubernetes中Pod的基础容器
Pod 是 Kubernetes 中的基本单位,代表集群上运行的一个进程。它由一个或多个容器组成,包括业务容器、基础容器、初始化容器和临时容器。基础容器负责维护 Pod 的网络空间,对用户透明。文中附有图片和视频讲解,详细介绍了 Pod 的组成结构及其在网络配置中的作用。
【赵渝强老师】Kubernetes中Pod的基础容器
|
3月前
|
Prometheus Kubernetes 监控
深入探索Kubernetes中的Pod自动扩展(Horizontal Pod Autoscaler, HPA)
深入探索Kubernetes中的Pod自动扩展(Horizontal Pod Autoscaler, HPA)
|
应用服务中间件 调度 nginx
Kubernetes-项目中pod调度使用法则
前言kubernetes中部署的pod默认根据资源使用情况自动调度到某个节点。可在实际项目的使用场景中都会有更细粒度的调度需求,比如:某些pod调度到指定主机、某几个相关的服务的pod最好调度到一个节点上、Master节点不允许某些pod调度等。
2074 0
|
Kubernetes 应用服务中间件 调度
Kubernetes之Pod调度
Kubernetes调度器根据特定的算法与策略将pod调度到工作节点上。在默认情况下,Kubernetes调度器可以满足绝大多数需求,例如调度pod到资源充足的节点上运行,或调度pod分散到不同节点使集群节点资源均衡等。
1482 0
|
Kubernetes 应用服务中间件 调度
Kubernetes之Pod调度
本文讲的是Kubernetes之Pod调度【编者的话】Kubernetes调度器根据特定的算法与策略将pod调度到工作节点上。在默认情况下,Kubernetes调度器可以满足绝大多数需求,例如调度pod到资源充足的节点上运行,或调度pod分散到不同节点使集群节点资源均衡等。
2821 0
|
1月前
|
缓存 容灾 网络协议
ACK One多集群网关:实现高效容灾方案
ACK One多集群网关可以帮助您快速构建同城跨AZ多活容灾系统、混合云同城跨AZ多活容灾系统,以及异地容灾系统。

热门文章

最新文章