首页 > 其他分享 >在K8S中,Pod的LivenessProbe 探针的常见方式有哪些?

在K8S中,Pod的LivenessProbe 探针的常见方式有哪些?

时间:2024-10-08 13:34:00浏览次数:9  
标签:容器 LivenessProbe 示例 端口 initialDelaySeconds 探针 kubelet Pod K8S

在 Kubernetes 中,Pod 的 Liveness Probe 探针用于确定何时重启容器。以下是 Liveness Probe 的常见方式:

  1. ExecAction

    • 在容器内执行命令。如果命令执行成功(返回码为0),则认为容器健康。否则,kubelet 会杀死并重启容器。

    • 配置示例:

      livenessProbe:
        exec:
          command:
          - cat
          - /tmp/healthy
        initialDelaySeconds: 5
        periodSeconds: 5
      
    • 在这个例子中,kubelet 会每隔 5 秒执行一次 cat /tmp/healthy 命令。如果命令返回失败(文件不存在或命令执行出错),则 kubelet 会重启容器。

  2. HTTPGetAction

    • 向容器的特定端口和路径发送 HTTP GET 请求。如果服务器返回的 HTTP 状态码在 200-399 范围内,则认为容器健康。

    • 配置示例:

      livenessProbe:
        httpGet:
          path: /healthz
          port: 8080
        initialDelaySeconds: 3
        periodSeconds: 3
      
    • 在这个例子中,kubelet 会每隔 3 秒向容器的 8080 端口上的 /healthz 路径发送一个 HTTP GET 请求。如果请求失败(例如,返回 500 错误),则 kubelet 会重启容器。

  3. TCPSocketAction

    • 尝试与容器的指定端口建立 TCP 连接。如果连接成功,则认为容器健康。

    • 配置示例:

      livenessProbe:
        tcpSocket:
          port: 8080
        initialDelaySeconds: 15
        periodSeconds: 10
      
    • 在这个例子中,kubelet 会每隔 10 秒尝试与容器的 8080 端口建立 TCP 连接。如果连接失败,则 kubelet 会重启容器。

  4. gRPC(Kubernetes v1.27 引入):

    • 如果应用实现了 gRPC 健康检查协议,可以使用 gRPC 探针进行存活性检查。

    • 配置示例:

      livenessProbe:
        grpc:
          port: 2379
        initialDelaySeconds: 10
      
    • 在这个例子中,kubelet 会检查 gRPC 服务是否在指定的端口上运行。如果服务未运行,则 kubelet 会重启容器。

综上所述,每种探针都可以配置额外的参数,如 initialDelaySeconds(首次探测前的等待时间)、periodSeconds(探测间隔时间)、timeoutSeconds(探测超时时间)、successThreshold(探测成功的阈值)和 failureThreshold(探测失败的阈值)等,以精确控制探针的行为。

标签:容器,LivenessProbe,示例,端口,initialDelaySeconds,探针,kubelet,Pod,K8S
From: https://www.cnblogs.com/huangjiabobk/p/18451471

相关文章

  • 在K8S中,Pod 的健康检查方式有哪些?
    在Kubernetes中,Pod的健康检查是通过探针(Probe)来实现的,主要有三种类型的探针:存活探针(LivenessProbe)、就绪探针(ReadinessProbe)和启动探针(StartupProbe)。以下是这些探针的详细介绍和配置方式:存活探针(LivenessProbe):目的:确定容器是否正在运行并能够响应请求。如果存活探针......
  • k8s pods 迭代penging
    节点磁盘空间不足,导致的集群GC清理失败,如果频繁发生,您需要扩容磁盘空间了kubectldeletensns_id--force一直Terminating?finalizers:-finalizers.kubesphere.io/namespaceskubectleditdeploykiali-operator-nistio-systemdefault8m31sWarningVolumeFailedDelet......
  • 如何使用minikube搭建k8s集群
    使用minikube搭建K8s(Kubernetes)集群是一个在本地快速设置Kubernetes环境的方法,特别适合用于学习和开发。以下是详细步骤:一、环境准备操作系统:如LinuxCentOS7.964位。CPU和内存:至少2核CPU和4GiB内存,建议2核CPU和更多内存以获得更好的性能。硬盘:至少需要20GB的硬盘空间。网......
  • 在K8S中,什么是静态Pod?
    在Kubernetes(K8S)中,静态Pod(StaticPod)是一种特殊的Pod类型,它并不是通过KubernetesAPIServer进行管理的,而是直接存在于节点上的。静态Pod的配置文件通常放置在节点上的特定目录中,由`kubelet`直接读取并创建和管理Pod。#####1.静态Pod的特点1.**直接管理**......
  • 在K8S中,kube-proxy ipvs和 iptables 有何异同?
    在Kubernetes(K8s)中,kube-proxy是负责服务发现和负载均衡的关键组件,它支持多种代理模式,其中IPVS和iptables是两种常用的模式。以下是kube-proxy在IPVS和iptables模式下的异同点:1.相同点服务发现和负载均衡:IPVS和iptables模式都用于实现Kubernetes中的服务发现和负载均衡功能。......
  • 基于 Prometheus+Grafana+Alertmanager 搭建 K8S 云平台系统(附配置告警至QQ、钉钉)
    目录一、机器规划二、部署安装node-exporter、prometheus、Grafana、kube-state-metrics1、创建monitor-sa命名空间2、安装node-exporter组件2.1、说明2.2、应用资源清单2.3、通过node-exporter采集数据3、k8s集群中部署prometheus3.1、创建一个sa账号3.2、将sa账号moni......
  • 在K8S中,kube-proxy有何作用?
    在Kubernetes(K8S)中,kube-proxy是一个关键组件,它负责实现KubernetesService的通信和负载均衡机制。以下是kube-proxy的主要作用和工作原理:服务代理和负载均衡:kube-proxy作为集群内部的负载均衡器,负责将进入的请求转发到后端的Pod。它为每个Service提供一个稳定的IP地......
  • 在K8S中,kube-proxy ipvs原理是什么?
    在Kubernetes(K8S)中,kube-proxy的IPVS模式是一种高性能的负载均衡解决方案,它利用Linux内核的IPVS(IPVirtualServer)功能来实现服务的负载均衡。以下是kube-proxy在IPVS模式下的工作原理:监听API服务器:kube-proxy启动后会持续监听KubernetesAPI服务器上的Service资源......
  • 在K8S中,kube-proxy iptables原理是什么?
    在Kubernetes中,kube-proxy使用不同模式来实现其功能,其中iptables模式是早期广泛使用的模式之一。下面详细介绍kube-proxy使用iptables模式的基本原理。1.iptables原理概述iptables是Linux内核的一部分,用于定义网络封包过滤规则。它是一个用户空间的应用程序,用来设......
  • k8s_deployConfig
    K8s_Deploy:环境变量ingress暴露port暴露requests和limitshost绑定环境变量:spec.template.spec.containers.env常量定义,比如灰度环境定义:-name:APP_ENVvalue:GRAY有时需要获取容器的一些信息,参数名自定义,则可参数引用:-name:POD_NAME......