代码之家  ›  专栏  ›  技术社区  ›  Hemang

Kubernetes默认的活动性和就绪性探测

  •  1
  • Hemang  · 技术社区  · 6 年前

    我想知道Kubernetes在默认情况下如何检查pod和容器的活动性和就绪性。

    我可以找到文档,其中提到如何添加自定义探针和更改探针参数(如初始延迟等),但找不到K8S使用的默认探针方法。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Prafull Ladha    6 年前

    默认情况下,当pod中的所有容器启动时,kubernetes开始向pod发送流量,并在容器崩溃时重新启动容器。虽然这可能是 good enough 当您开始时,您可以通过创建自定义的健康检查使部署更加健壮。

    默认情况下,kubernetes只检查pod中的容器是否启动,并开始发送流量。默认情况下,Kubernetes不提供就绪性或活动性检查。

    准备就绪探测器

    让我们想象一下,你的应用程序需要一分钟来预热和启动。即使进程已经启动,您的服务在启动并运行之前也不会工作。如果要将此部署扩展为多个副本,也会出现问题。一个新的拷贝在完全准备好之前不应该接收流量,但是默认情况下,kubernetes在容器内的进程开始时就开始发送流量。通过使用 readiness probe ,kubernetes等待应用程序完全启动,然后才允许服务向新副本发送流量。

    活性探针

    让我们想象一下另一个场景,你的应用出现严重的死锁情况,导致它无限期挂起并停止服务请求。因为进程继续运行,默认情况下Kubernetes认为一切都很好,并继续向损坏的pod发送请求。通过使用Liveness探针,Kubernetes检测到应用程序不再提供请求,并重新启动有问题的pod。