应用部署在SAE后,您使用健康检查功能查看容器与业务运行是否正常,以便异常时定位问题。

背景信息

健康检查是指由Liveness探针或者Readiness探针对容器与应用进行定时检查,并将结果反馈给SAE控制台的过程,帮助您了解集群环境下整个服务的运行状态,方便问题定位。

SAE基于Kubernetes,提供了如下两种健康检查方式。

  • 应用实例存活检查(Liveness 配置):针对单个应用实例进行健康检查,检测应用实例是否已经启动,如果已启动表示容器存活,反之亦然。如果检查到的容器存活状态为失败,SAE重启容器;如果容器存活检查成功,表示应用运作正常,不执行任何操作。
  • 应用业务就绪检查(Readiness 配置):针对应用业务进行健康检查,检测处理客户请求的容器是否已经就绪。如果检测到容器未准备就绪,则上报容器异常,不为该容器分配业务流量;如果容器准备就绪,则分配业务流量进行处理。
    说明 此方式适用如下业务:
    • 启动时需要加载磁盘数据的业务。
    • 依赖外部模块而导致启动时间长的业务。

在创建应用过程中配置健康检查

  1. 登录SAE控制台
  2. 在左侧导航栏单击应用列表,并在应用列表页面右上角单击创建应用
  3. 应用基本信息页签设置应用相关信息,并单击下一步:应用部署配置
  4. 应用部署配置页面,您可以展开应用健康检查设置面板,并设置相关配置。
    说明
    • 应用实例存活检查和应用业务就绪检查的参数相同。
    • 在健康检查设置中应用实例存活检查(Liveness 配置)应用业务就绪检查(Readiness 配置)二者可选配其一,也可二者都配。如果二者都配,SAE优先进行应用实例存活检查,检查完成后进行应用业务就绪检查。
    sae健康检查

    健康检查参数说明

    • 延迟时间:输入延迟检测时间。例如设置为10,表示从应用启动后10秒开始检测。
    • 超时时间:设置健康检查超时等待时间。例如设置为10,如果超时等待时间超过10秒,则本次健康检查失败,上报超时异常。若设置为0或不设置,默认超时等待时间为1秒。
    • 执行命令:设置容器或者进程内部执行的健康检查命令。如果该命令退出状态码为0,表示容器健康 。

      命令格式请参见右侧的示例区域。

      说明 健康检查相关命令请查阅Kubernetes官网Configure Probes内容。

    示例:

    如果业务健康检查状态是通过http://127.0.0.1:8080/static/check.txt文件来判断的,那么可以使用命令cat /tmp/healthy进行健康检查。

    sae健康检查

    如果业务健康检查状态是通过HTTP Get方式访问/healthz路径来判断的,那么可以使用命令curl 127.0.0.1/healthz进行健康检查。

    ex_readiness_config.png
    说明 若采用镜像部署,请确保镜像中包含相关命令且路径正确。若采用WAR/JAR包部署,请确保Java环境不是Alpine。
  5. 确认规格页签,查看您所创建应用的详细信息以及配置费用情况,并单击确认创建
  6. 结果验证。
    1. 在应用详情页左侧导航栏中,单击应用事件
    2. 检查是否存在健康检查事件上报。
      • 如果存在,则表示健康检查配置失败。 配置失败结果示意图
      • 如果不存在,表示配置成功。

应用部署完成后配置健康检查

健康检查配置可以在创建应用过程中设置,也可以在应用部署完成后进行配置。

  1. 在应用列表中,单击具体应用名称。
  2. 应用详情页面的右上角,单击部署应用
  3. 部署应用页面最下方,根据您的需求进行配置,并在配置完成后单击确认
    注意 单击确认后,该应用将会被重启,请在业务较少的时间段进行。

更多信息

问题反馈

如果您在使用SAE过程中有任何疑问,欢迎您扫描下面的二维码加入钉钉群进行反馈。SAE钉钉群2