- 最新动态
- 功能总览
- 产品介绍
- 计费说明
- 快速入门
-
用户指南
- 使用前必读
- 权限管理
- 环境管理
- 应用管理
- 组件管理
- 配置管理
- 全链路流量控制
- 发布管理(公测)
- 技术栈管理
- 部署源管理
- 持续交付
- 微服务引擎
- 云审计服务支持的关键操作
- 查看监控指标及告警
- 开发指南
- 最佳实践
- API参考
- SDK参考
- 场景代码示例
-
常见问题
- 应用开发问题咨询指引
- 环境管理
-
应用管理
- 如何查看应用组件部署失败的原因?
- 如何解决单击应用组件外部访问地址返回504的问题?
- 如何处理虚拟机类型环境下应用创建实例失败?
- 实例长期处于创建中怎么办?
- 如何解决Docker运行node应用程序时的依赖问题?
- 如何定制Tomcat Context path?
- 如何固定应用组件IP?
- 如何处理虚拟机类型环境下创建和部署组件时遇到ECS错误?
- 如何处理虚拟机类型环境下创建和部署组件时端口访问不通的错误?
- 虚拟机类型环境下部署的应用组件支持在什么目录写文件?
- 如何处理虚拟机类型环境下部署的组件删除失败报host status is not active错误的问题?
- 如何体验ServiceStage的源码部署功能?
- 如何处理使用ServiceStage灰度发布升级组件失败?
- 如何通过挂载配置项方式修改容器部署的组件配置文件?
- 如何处理应用组件接入微服务引擎后在微服务治理下看到的应用名称和ServiceStage应用管理下的不同?
- 持续交付
- 软件中心
- 基础设施
- 应用运维
- 应用开发问题
- 视频帮助
- 文档下载
- 通用参考
链接复制成功!
设置健康检查
健康检查是指容器部署的组件在运行过程中,根据需要定时检查容器健康状况。若不配置健康检查,如果容器内应用程序异常,Pod将无法感知,也不会自动重启去恢复。最终导致虽然Pod状态显示正常,但Pod中的应用程序异常的情况。
ServiceStage提供了如下健康检查方式:
- 组件存活探针:用于检测应用组件是否存活,类似于执行ps命令检查进程是否存在。如果应用组件的存活检查失败,集群会对该应用组件执行重启操作;若应用组件的存活检查成功则不执行任何操作。
- 组件业务探针:用于检测应用组件是否准备好开始处理用户请求。一些程序的启动时间可能很长,比如要加载磁盘数据或者要依赖外部的某个模块启动完成才能提供服务。这时候程序进程存在,但是并不能对外提供服务。这种场景下该检查方式就非常有用。如果应用组件的就绪检查失败,集群会屏蔽请求访问该组件;若检查成功,则会开放对该应用组件的访问。
- 组件启动探针:用于检测应用是否已经启动,控制容器在启动成功后再进行存活性和业务检查, 确保存活、业务探针不会影响应用程序的启动。可用于对启动慢的容器进行存活性检查,避免它们在启动运行之前就被终止。
健康检查方式
- HTTP请求检查
HTTP请求方式针对的是提供HTTP/HTTPS服务的应用组件,集群周期性地对该应用发起HTTP/HTTPS GET请求,如果HTTP/HTTPS response返回码属于200~399范围,则证明探测成功,否则探测失败。使用HTTP请求探测必须指定应用监听的端口和HTTP/HTTPS的请求路径。
例如:提供HTTP服务的应用组件,端口为80,HTTP检查路径为/health-check,主机地址为containerIP,那么集群会周期性地对应用发起如下请求:
GET http://containerIP:80/health-check
HTTP请求检查中的主机地址,如果不填写,默认为实例IP。
- TCP端口检查
对于提供TCP通信服务的应用,集群周期性地对该应用建立TCP连接。如果连接成功,则证明探测成功,否则探测失败。选择TCP端口探测方式,必须指定应用监听的端口。比如有一个nginx应用组件,它的服务端口是80,对该应用组件配置了TCP端口探测,指定探测端口为80,那么集群会周期性地对该应用组件的80端口发起TCP连接,如果连接成功则证明检查成功,否则检查失败。
- 执行命令检查
命令检查方式要求用户指定一个应用组件内的可执行命令,集群会周期性地在应用组件内执行该命令,如果命令的返回结果是0则检查成功,否则检查失败。
对于上面提到的TCP端口检查和HTTP请求检查,都可以通过执行命令检查的方式来替代:
- 对于TCP端口探测,可以使用程序来对应用组件的端口进行connect,如果connect成功,脚本返回0,否则返回-1。
- 对于HTTP请求探测,可以使用脚本来对应用组件进行wget:
wget http://127.0.0.1:80/health-check
并检查response的返回码,如果返回码在200~399的范围,脚本返回0,否则返回-1。
- 必须把要执行的程序放在应用组件的镜像里面,否则会因找不到程序而执行失败。
- 如果执行的命令是一个shell脚本,由于集群在执行应用组件里的程序时,不在终端环境下,因此不能直接指定脚本为执行命令,需要加上脚本解释器。比如脚本是/data/scripts/health_check.sh,那么使用执行命令检查时,指定的程序应该是sh /data/scripts/health_check.sh。究其原因是集群在执行应用组件里的程序时,不在终端环境下。
- GRPC检查
GRPC检查可以为GRPC应用程序配置启动、活动和就绪探针,而无需暴露任何HTTP端点,也不需要可执行文件。CCE可以通过GRPC 连接到工作负载并查询其状态。
- GRPC检查仅在CCE v1.25及以上版本集群中支持。
- 使用GRPC检查时,您的应用需支持GRPC健康检查协议。
- 与HTTP和TCP探针类似,如果配置错误,都会被认作是探测失败,例如错误的端口、应用未实现健康检查协议等。
公共参数说明
设置健康检查
- 选择“容器配置 > 健康检查”。
- 根据业务实际需求设置健康检查参数,相关公共参数说明请参考表1。