将应用部署在SAE后,您可以使用健康检查功能查看应用实例与业务运行是否正常,以便运行异常时定位问题。本文介绍如何在创建应用过程中和应用部署完成后配置健康检查。
背景信息
健康检查是指由Liveness探针或者Readiness探针对应用实例与应用进行定时检查,并将结果反馈给SAE控制台的过程,帮助您了解集群环境下整个服务的运行状态,方便您定位问题。
说明 此方式适用于以下业务:
- 应用启动时需要加载磁盘数据。
- 依赖外部模块而导致应用启动时间长。
SAE基于Kubernetes,提供了以下两种健康检查方式:
- 应用实例存活检查(Liveness配置):针对单个应用实例进行健康检查,检测应用实例是否已经启动。
- 检查成功:表示应用实例健康,SAE不执行任何操作。
- 检查失败:表示应用实例不健康,SAE会重启应用实例。
- 应用业务就绪检查(Readiness配置):针对应用业务进行健康检查,检测处理客户请求的应用是否已经就绪。
- 检查成功:表示应用准备就绪,SAE会为应用分配业务流量进行处理。
- 检查失败:表示应用未准备就绪,SAE会上报应用异常,不为该应用分配业务流量。
说明- 健康检查成功一次即认为检查通过。
- 如果健康检查失败,SAE会按照您设置的检查周期时间重新进行健康检查。如果检查连续3次失败,则认为健康检查失败,SAE会开始重启应用实例或不为该应用分配业务流量。
在创建应用过程中配置健康检查
- 登录SAE控制台。
- 在左侧导航栏单击应用列表,在应用列表页面上方选择地域,单击创建应用。
- 在应用基本信息页签设置应用相关信息,并单击下一步:应用部署配置。
- 在应用部署配置页签,选择技术栈语言和应用部署方式,设置部署参数。
- 在应用部署配置页签,展开应用健康检查设置区域,选择检查方式,并设置相关参数。说明
- 应用实例存活检查和应用业务就绪检查的参数相同。
- 在健康检查设置中应用实例存活检查(Liveness配置)与应用业务就绪检查(Readiness配置)二者可选配其一,也可二者都配(推荐)。如果二者都配,SAE会根据配置的检查延迟时间依次执行健康检查。
- HTTP请求检查:通过向实例发送HTTP请求检查健康情况。通过HTTP访问获得的HTTP状态码位于[200,399]之间,则认为访问成功,实例健康;否则认为失败,实例不健康。
参数说明如下所示。
参数名 说明 路径 设置访问HTTP Server的路径。 端口 设置访问HTTP Server的端口。 高级设置 展开高级设置后,您可以选择判断返回的字符串中是否包含或不包含设置的关键字。 协议 选择HTTP或HTTPS。 延迟时间(秒) 设置健康检查延迟检测时间,单位为秒。默认为10。例如设置为5,表示从应用启动后5秒开始检测。 超时时间(秒) 设置健康检查超时等待时间,单位为秒。默认为1。例如设置为10,如果超时等待时间超过10秒,则本次健康检查失败,上报超时异常。若设置为0或不设置,默认超时等待时间为1秒。 检查周期(秒) 设置健康检查周期,单位为秒。默认为30。例如设置为5,表示每隔5秒检查一次。 - TCP端口检查:通过向实例发送一个TCP Socket来检查实例的健康情况。如果可以建立连接,则认为实例健康;如果连接失败,则认为不健康。
参数说明如下所示。
参数名 说明 TCP端口 设置TCP检查访问的端口。 延迟时间(秒) 设置健康检查延迟检测时间,单位为秒。默认为10。例如设置为5,表示从应用启动后5秒开始检测。 超时时间(秒) 设置健康检查超时等待时间,单位为秒。默认为1。例如设置为10,如果超时等待时间超过10秒,则本次健康检查失败,上报超时异常。若设置为0或不设置,默认超时等待时间为1秒。 检查周期(秒) 设置健康检查周期,单位为秒。默认为30。例如设置为5,表示每隔5秒检查一次。 - 执行命令检查:通过在实例中执行探针检测命令来检查实例的健康情况。如果执行命令后返回的状态码为0,则认为执行成功,实例健康;如果不为0,则认为执行失败,实例不健康。
参数说明如下所示。
参数名 说明 延迟时间(秒) 设置健康检查延迟检测时间,单位为秒。默认为10。例如设置为5,表示从应用启动5秒后开始检测。 超时时间(秒) 设置健康检查超时等待时间,单位为秒。默认为1。例如设置为10,如果超时等待时间超过10秒,则本次健康检查失败,上报超时异常。若设置为0或不设置,默认超时等待时间为1秒。 检查周期(秒) 设置健康检查周期,单位为秒。默认为30。例如设置为5,表示每隔5秒检查一次。 执行命令 设置应用实例或者进程内部执行的健康检查命令。如果该命令返回码为0,则表示应用健康。 执行命令的具体格式,请参见右侧的示例区域或下文中的示例。健康检查相关命令,请参见Kubernetes官网Configure Probes。
注意 设置执行命令时,首行填写命令,次行之后再填写参数,多条参数时以换行分隔,请避免出现空行情况。
- 单击下一步:确认规格。
- 在确认规格页签,查看您所创建应用的详细信息以及配置费用情况,并单击确认创建。
- 结果验证。
在应用列表页面,单击实例部署信息页签,在默认分组区域查看实例的运行状态,将鼠标移至状态后的标志上,可查看详细信息。
状态说明如下所示。
运行状态 说明 - Liveness健康检查未配置
- Readiness健康检查未配置
- Liveness与Readiness健康检查未配置
表示实例未配置健康检查。 说明- 推荐既配置Liveness也配置Readiness检查。
- 如果您需要了解健康检查的配置说明,您可以单击查看详情,查看配置文档。
表示实例正在或等待进行健康检查。 说明 应用启动后,需要等待健康检查所设置的延迟时间,才会开始健康检查。- Liveness健康检查失败
- Readiness健康检查失败
- Liveness与Readiness健康检查失败
表示健康检查失败,实例不健康。 说明 如果您需要查看检查失败原因,您可以单击失败,页面会自动跳转至应用事件页面,展示健康检查的详细信息。表示健康检查通过,实例健康。
应用部署完成后配置健康检查
- 登录SAE控制台。
- 在左侧导航栏单击应用列表,在应用列表页面上方选择地域,单击具体应用名称。
- 在应用详情页面的右上角,单击部署应用。
- 在部署应用页面,展开应用健康检查设置区域,配置相关参数。说明
- 应用实例存活检查和应用业务就绪检查的参数相同。
- 在健康检查设置中应用实例存活检查(Liveness配置)与应用业务就绪检查(Readiness配置)二者可选配其一,也可二者都配(推荐)。如果二者都配,SAE会根据配置的检查延迟时间依次执行健康检查。
- HTTP请求检查:通过向实例发送HTTP请求检查健康情况。通过HTTP访问获得的HTTP状态码位于[200,399]之间,则认为访问成功,实例健康;否则认为失败,实例不健康。
参数说明如下所示。
参数名 说明 路径 设置访问HTTP Server的路径。 端口 设置访问HTTP Server的端口。 高级设置 展开高级设置后,您可以选择判断返回的字符串中是否包含或不包含设置的关键字。 协议 选择HTTP或HTTPS。 延迟时间(秒) 设置健康检查延迟检测时间,单位为秒。默认为10。例如设置为5,表示从应用启动后5秒开始检测。 超时时间(秒) 设置健康检查超时等待时间,单位为秒。默认为1。例如设置为10,如果超时等待时间超过10秒,则本次健康检查失败,上报超时异常。若设置为0或不设置,默认超时等待时间为1秒。 检查周期(秒) 设置健康检查周期,单位为秒。默认为30。例如设置为5,表示每隔5秒检查一次。 - TCP端口检查:通过向实例发送一个TCP Socket来检查实例的健康情况。如果可以建立连接,则认为实例健康;如果连接失败,则认为不健康。
参数说明如下所示。
参数名 说明 TCP端口 设置TCP检查访问的端口。 延迟时间(秒) 设置健康检查延迟检测时间,单位为秒。默认为10。例如设置为5,表示从应用启动后5秒开始检测。 超时时间(秒) 设置健康检查超时等待时间,单位为秒。默认为1。例如设置为10,如果超时等待时间超过10秒,则本次健康检查失败,上报超时异常。若设置为0或不设置,默认超时等待时间为1秒。 检查周期(秒) 设置健康检查周期,单位为秒。默认为30。例如设置为5,表示每隔5秒检查一次。 - 执行命令检查:通过在实例中执行探针检测命令来检查实例的健康情况。如果执行命令后返回的状态码为0,则认为执行成功,实例健康;如果不为0,则认为执行失败,实例不健康。
参数说明如下所示。
参数名 说明 延迟时间(秒) 设置健康检查延迟检测时间,单位为秒。默认为10。例如设置为5,表示从应用启动5秒后开始检测。 超时时间(秒) 设置健康检查超时等待时间,单位为秒。默认为1。例如设置为10,如果超时等待时间超过10秒,则本次健康检查失败,上报超时异常。若设置为0或不设置,默认超时等待时间为1秒。 检查周期(秒) 设置健康检查周期,单位为秒。默认为30。例如设置为5,表示每隔5秒检查一次。 执行命令 设置应用实例或者进程内部执行的健康检查命令。如果该命令返回码为0,则表示应用健康。 执行命令的具体格式,请参见右侧的示例区域或下文中的示例。健康检查相关命令,请参见Kubernetes官网Configure Probes。
注意 设置执行命令时,首行填写命令,次行之后再填写参数,多条参数时以换行分隔,请避免出现空行情况。
- 配置完成后单击确认。注意 单击确认后,该应用将会被重启,请在业务较少的时间段进行。
- 结果验证。
在应用列表页面,单击实例部署信息页签,在默认分组区域查看实例的运行状态,将鼠标移至状态后的标志上,可查看详细信息。
状态说明如下所示。
运行状态 说明 - Liveness健康检查未配置
- Readiness健康检查未配置
- Liveness与Readiness健康检查未配置
表示实例未配置健康检查。 说明- 推荐既配置Liveness也配置Readiness检查。
- 如果您需要了解健康检查的配置说明,您可以单击查看详情,查看配置文档。
表示实例正在或等待进行健康检查。 说明 应用启动后,需要等待健康检查所设置的延迟时间,才会开始健康检查。- Liveness健康检查失败
- Readiness健康检查失败
- Liveness与Readiness健康检查失败
表示健康检查失败,实例不健康。 说明 如果您需要查看检查失败原因,您可以单击失败,页面会自动跳转至应用事件页面,展示健康检查的详细信息。表示健康检查通过,实例健康。
问题反馈
如果您在使用SAE过程中有任何疑问,欢迎您扫描下面的二维码或搜索钉钉群号23198618,加入钉钉群与我们交流。