首页 > 其他分享 >在K8S中,Pod的健康检查方式有哪些?

在K8S中,Pod的健康检查方式有哪些?

时间:2024-02-08 09:02:28浏览次数:26  
标签:容器 Liveness Readiness Probe 探针 健康检查 Pod K8S

在 Kubernetes (K8s) 中,Pod 的健康检查主要通过两种类型的探针实现:Liveness Probe 和 Readiness Probe。

  1. Liveness Probe(存活探针):

    • 用于检测容器是否处于正常运行状态。如果Liveness Probe失败,则表明容器已不再健康,并且kubelet会采取相应行动,通常是重启容器。
    • Liveness Probe可以通过以下几种方式执行:
      • ExecAction:在容器内执行指定的命令,根据命令的退出码判断容器是否健康。
      • HTTPGetAction:向容器暴露的HTTP端点发送GET请求,根据响应的状态码和延迟判断容器是否健康。
      • TCPSocketAction:尝试连接到容器监听的特定TCP端口,根据连接成功与否来判断容器是否仍在提供服务。
  2. Readiness Probe(就绪探针):

    • 用于确定容器是否准备好为流量提供服务。只有当Readiness Probe成功时,容器才会被视为“Ready”状态,并由Service等资源开始路由流量给该Pod。
    • Readiness Probe同样支持与Liveness Probe相同的执行方式:
      • ExecAction
      • HTTPGetAction
      • TCPSocketAction

此外,还有一个不太常用的启动Probe:

  1. Startup Probe(启动探针):
    • 从Kubernetes v1.16版本开始引入,用于探测容器应用启动初期是否已经准备就绪,以便于减少因应用程序初始化时间过长导致的不必要的重启。
    • 启动探针也支持上述三种执行方式,一旦启动探针成功,kubelet将停止执行Liveness和Readiness探针,直到启动探针失败。

综上所述,配置这些探针时,需要在Pod的定义中为每个容器设置相应的livenessProbereadinessProbe和/或startupProbe字段,并详细指定其执行动作类型、路径、端口、超时时间、重试次数等参数。

标签:容器,Liveness,Readiness,Probe,探针,健康检查,Pod,K8S
From: https://www.cnblogs.com/huangjiabobk/p/18011566

相关文章

  • 在k8S中,Pod中的LivenessProbe探针常见方式有哪些?
    在Kubernetes(k8s)中,Pod的LivenessProbe探针常见的方式有以下三种:Exec:通过在容器内部执行一个命令来检查应用是否正常运行。如果命令的退出状态码为0,则认为应用程序是健康的;非0状态码则视为不健康。例如:livenessProbe:exec:command:-cat-/t......
  • kubernetes集群核心概念---pod
    1.pod介绍参考链接:https://kubernetes.io/zh/docs/concepts/workloads/pods/1.1.查看pod[root@centos~]#kubectlgetpod#pod或pods都可以,不指定namespace,默认是名为default的namespace [root@centos~]#kubectlgetpod-nkube-system1.2.pod的yaml资源清单格式......
  • 二刷 K8s 源码 - workqueue 的所有细节
    1.概述-何来此文2.Queue的实现2.1Queue.Add(iteminterface{})方法2.2Queue.Get()方法2.3Queue.Done(iteminterface{})方法3.DelayingQueue的实现4.RateLimitingQueue的实现5.rateLimiter限速器的实现6.控制器里用的默认限速器7.总结1.概述-......
  • Docker-compose至K8S迁移工具kompose
    参考Github:https://github.com/kubernetes/komposekompose工具用于将docker-compose配置文件转换的k8s可识别的yaml文件安装CentOS安装#yuminstallepel-release#yuminstallkompose使用源安装的版本较老可直接下载#Linuxcurl-Lhttps://github.com/kubernetes/......
  • k8s 怎么手动拉取docker镜像?
    k8s怎么手动拉取docker镜像?在Kubernetes(K8s)中管理和部署应用时,手动拉取Docker镜像是一项基本操作。在Kubernetes中,Pod创建时通常会在其配置文件(Deployment,StatefulSet等)中指定需要使用的Docker镜像。但如果你想先手动将镜像拉取到集群节点上,可以按照以下步骤进行:首先,确保......
  • 在K8S中,kube-proxy 作用是什么?
    在Kubernetes(K8s)中,kube-proxy是一个关键的网络组件,它运行在集群中的每个节点上,负责实现服务发现和负载均衡功能。kube-proxy的主要作用包括:服务代理:kube-proxy将Kubernetes的服务抽象(Service)转换为实际的网络路由规则,使得Pod可以相互通信,并且外部流量可以正确地流入到服务背后......
  • 在K8S中,kube-proxy iptables 原理是什么?
    在Kubernetes(K8s)中,kube-proxy组件使用iptables模式时,其主要原理是利用Linux内核的iptables工具动态管理节点上的网络规则,以实现服务(Service)到后端Pod之间的透明网络代理和负载均衡。以下是kube-proxy在iptables模式下工作的大致步骤:监听APIServer:kube-proxy在每个集群节点上......
  • 在K8S中,kube-proxy ipvs 原理是什么?
    在Kubernetes(K8s)集群中,kube-proxy是一个关键组件,它负责实现从Service到后端Pods的网络代理和负载均衡功能。当kube-proxy工作在IPVS模式时,其原理如下:监听API服务器:kube-proxy启动后会持续监听KubernetesAPI服务器上的Service资源对象的变化。每当有新的Service创建、更......
  • 在K8S中,kube-proxy ipvs 和 iptables 有何异同?
    在Kubernetes(K8s)中,kube-proxy作为集群网络代理组件,可以配置为使用iptables或IPVS模式来实现服务的负载均衡和网络代理功能。下面是kube-proxy在iptables模式和IPVS模式下的异同点:相同点:目标:无论是iptables还是IPVS模式,kube-proxy的目标都是将流入集群的服务请求透明地转发到后......
  • 在K8S中,什么是静态 Pod?
    在Kubernetes(K8s)中,静态Pod是由kubelet直接管理的特殊类型Pod。与通常通过KubernetesAPIServer创建和管理的Pod不同,静态Pod的定义文件直接放置在特定节点上的kubelet配置目录中,而非由APIServer创建和调度。特点:直接由kubelet管理:kubelet会定期检查其配置目录(默认为/etc/kub......