首页 > 其他分享 >在K8S中,pod中readness 和 liveness 的区别和各自应用场景是什么?

在K8S中,pod中readness 和 liveness 的区别和各自应用场景是什么?

时间:2024-10-25 13:20:11浏览次数:6  
标签:10 Liveness Readiness liveness 探针 探测 应用 pod K8S

在Kubernetes(K8s)中,Pod的readiness和liveness探针是两种重要的健康检查机制,它们各自有着不同的应用场景和功能。以下是对这两者的详细解释:

  1. Liveness Probe(存活探针)

    • 作用:Liveness探针主要用于探测应用是否还活着。如果检测到应用没有存活(即探针失败),Kubernetes会杀掉当前Pod并重启它。

    • 应用场景:适用于需要确保应用持续运行且在发生故障时能够自动恢复的场景。例如,当应用因为死锁或其他致命错误而停止响应时,Liveness探针可以触发Pod的重启,从而恢复应用的正常运行。

    • 配置示例

      livenessProbe:
        httpGet:
          path: /healthz
          port: 8080
        initialDelaySeconds: 10
        periodSeconds: 10
        timeoutSeconds: 5
        failureThreshold: 3
      

      在这个示例中,Liveness探针会在容器启动后等待10秒再进行第一次探测,每隔10秒执行一次探测,如果在5秒内没有响应则认为探测失败,连续失败3次才认为容器不健康。

  2. Readiness Probe(就绪探针)

    • 作用:Readiness探针用于探测应用是否准备好接受请求访问。如果检测应用没有准备好(即探针失败),Kubernetes会把该Pod从服务的负载均衡池中移除,直到它再次变得可用。

    • 应用场景:适用于需要确保应用在完全准备好后才处理请求的场景。例如,在应用启动过程中可能需要加载配置文件、连接数据库或执行其他初始化操作,这时可以使用Readiness探针来确保这些操作完成后再将Pod标记为就绪状态。

    • 配置示例

      readinessProbe:
        httpGet:
          path: /readyz
          port: 8080
        initialDelaySeconds: 10
        periodSeconds: 5
        timeoutSeconds: 3
        failureThreshold: 3
      

      在这个示例中,Readiness探针会在容器启动后等待10秒再进行第一次探测,每隔5秒执行一次探测,如果在3秒内没有响应则认为探测失败,连续失败3次才认为容器不就绪。

综上所述,Liveness探针和Readiness探针在Kubernetes中扮演着不同的角色。Liveness探针主要用于确保应用的持续运行和自动恢复,而Readiness探针则用于确保应用在完全准备好后才处理请求。通过合理配置这两种探针,可以提高应用的可靠性和稳定性。

标签:10,Liveness,Readiness,liveness,探针,探测,应用,pod,K8S
From: https://www.cnblogs.com/huangjiabobk/p/18502311

相关文章

  • k8s rbac
    rbac基于角色的权限控制针对namespace粒度,user-rolebinding-role或者user-group-rolebinding-role;针对cluster粒度,user-clusterrolebinding-clusterrole或者user-group-clusterrolebinding-clusterrole。#放通testnamespace所有权限apiVersion:v1kind:ServiceAccountmetad......
  • 全网最详细K8S部署Nacos集群
    K8S部署Nacos集群简介Nacos是阿里巴巴开源的一个动态服务发现、配置管理和服务管理平台,特别设计用于简化云原生应用的构建与管理。Nacos的核心特性包括:服务发现与健康检查:Nacos支持DNS与RPC方式的服务发现机制,能够自动发现、路由及负载均衡微服务。它通过健康检查机制监......
  • 在K8S中,什么是 Headless Service?
    在Kubernetes(K8s)中,HeadlessService(无头服务)是一种特殊类型的服务发现机制,它允许用户直接访问集群中的Pod实例,而不是通过Service的负载均衡机制转发到某个具体的Endpoint(Pod)。以下是对HeadlessService的详细解析:1.定义与特点定义:HeadlessService是一种特殊类型的Service,其sp......
  • 在K8S中,如何看待公司从单一服务转向微服务并部署其服务容器?
    将公司的单一服务架构迁移到微服务架构,并使用Kubernetes(K8s)进行服务容器化部署,是一个复杂的过程,涉及到多个方面的考虑。以下是关于这一转变的一些关键点:1.微服务的好处与挑战1.1好处:可扩展性:每个服务可以独立地进行水平或垂直扩展。灵活性:可以独立地更新、维护和部署各个......
  • 在K8S中,Worker节点宕机,Pods驱逐流程有哪些?
    在Kubernetes(K8S)中,当Worker节点宕机时,Kubernetes有一套处理流程来确保Pods的可用性和服务的连续性。以下是详细的处理流程:节点状态检测:Kubernetes通过kubelet组件定期向API服务器报告节点状态。如果节点宕机,kubelet将无法发送心跳,节点状态将变为NotReady。节点状态更新:Kuber......
  • 在K8S中,常用的CNI网络插件有哪些?并说一下它们的工作原理和区别。
    在Kubernetes(K8s)中,常用的CNI(ContainerNetworkInterface)网络插件包括Flannel、Calico、Weave、Cilium等。这些插件的工作原理和区别如下:1.工作原理CNI是容器网络接口,它是一个标准的通用的接口,用于连接容器管理系统和网络插件。容器runtime为容器提供networknamespace,网络插件......
  • 在K8S中,有几种Controller控制器并说一下其工作原理及ingress-controller的工作机制。
    在Kubernetes(K8s)中,Controller控制器是核心组件,它们负责监控集群状态,并确保系统的期望状态与实际状态一致。以下是几种常见的Controller控制器及其工作原理,以及ingress-controller的工作机制的详细介绍:1.常见的Controller控制器及其工作原理ReplicationController作用:确保指......
  • k8s 使用 containerd 作为容器运行时拉取 http 的 harbor 私有仓库镜像
    目录版本介绍报错内容解决方法主配置文件修改创建镜像仓库配置备注版本介绍k8s:v1.28.2containerd:1.6.33报错内容我的harbor用的是http的,因为是内网自己用,就没有配置https了,于是配置好镜像拉取的凭据,pod拉取镜像会有以下的报错Failedtopullimage"harbor.de......
  • 【K8S系列】K8S集群 15个 常见问题及解决方案总结,建议收藏
    在Kubernetes集群的使用过程中,用户可能会遇到各种问题。以下是15个常见问题及其详细描述、故障排查步骤、常见错误信息和解决方案,帮助用户更有效地管理和维护Kubernetes环境。1.Pod初始化失败问题Pod处于Init:CrashLoopBackOff或Init:Error状态。故障排......
  • K8s-安全认证
    访问控制概述Kubernetes作为一个分布式集群的管理工具,保证集群的安全性是其一个重要的任务。所谓的安全性其实就是保证对Kubernetes的各种客户端进行认证和鉴权操作。客户端在Kubernetes集群中,客户端通常有两类:UserAccount:一般是独立于kubernetes之外的其他服务管理的用户......