上云无忧 > 文档中心 > 腾讯云容器服务 TKE 标准集群 Kubernetes 对象管理 - 设置工作负载的健康检查
容器服务 TKE
腾讯云容器服务 TKE 标准集群 Kubernetes 对象管理 - 设置工作负载的健康检查

文档简介:
腾讯云容器集群内核基于 Kubernetes。Kubernetes 支持对容器进行周期性探测,并根据探测结果判断容器的健康状态,执行额外的操作。
*此产品及展示信息均由腾讯云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠
腾讯云容器集群内核基于 Kubernetes。Kubernetes 支持对容器进行周期性探测,并根据探测结果判断容器的健康状态,执行额外的操作。

健康检查类别

健康检查分为以下类别:
容器存活检查:用于检测容器是否存活,类似于执行 ps 命令检查进程是否存在。如果容器的存活检查失败,集群会对该容器执行重启操作。如果容器的存活检查成功,则不执行任何操作。
容器就绪检查:用于检测容器是否准备好开始处理用户请求。例如,程序的启动时间较长时,需要加载磁盘数据或者要依赖外部的某个模块启动完成才能提供服务。此时,可通过容器就绪检查方式检查程序进程,确认程序是否启动完成。如果容器的就绪检查失败,集群会屏蔽请求访问该容器。如果容器的就绪检查成功,则会开放对该容器的访问。

健康检查方式

TCP 端口探测

TCP 端口探测的原理如下: 对于提供 TCP 通信服务的容器,集群周期性地对该容器建立 TCP 连接。如果连接成功,证明探测成功,否则探测失败。选择 TCP 端口探测方式,必须指定容器监听的端口。 例如,一个 redis 容器,它的服务端口是6379。我们对该容器配置了 TCP 端口探测,并指定探测端口为6379,那么集群会周期性地对该容器的6379端口发起 TCP 连接。如果连接成功,证明检查成功,否则检查失败。

HTTP 请求探测

HTTP 请求探测是针对于提供 HTTP/HTTPS 服务的容器,并集群周期性地对该容器发起 HTTP/HTTPS GET 请求。如果 HTTP/HTTPS response 返回码属于200 - 399范围,证明探测成功,否则探测失败。使用 HTTP 请求探测必须指定容器监听的端口和 HTTP/HTTPS 的请求路径。 例如,提供 HTTP 服务的容器,服务端口为 80,HTTP 检查路径为 /health-check,那么集群会周期性地对容器发起GET http://containerIP:80/health-check 请求。

执行命令检查

执行命令检查是一种强大的检查方式,该方式要求用户指定一个容器内的可执行命令,集群会周期性地在容器内执行该命令。如果命令的返回结果是0,检查成功,否则检查失败。 对于 TCP 端口探测HTTP 请求探测,都可以通过执行命令检查的方式来替代:
对于 TCP 端口探测,可以写一个程序对容器的端口进行 connect。如果 connect 成功,脚本返回0,否则返回-1。
对于 HTTP 请求探测,可以编写一个脚本对容器进行 wget 并检查 response 的返回码。例如,wget http://127.0.0.1:80/health-check。如果返回码在200 - 399的范围,脚本返回0,否则返回-1。

注意事项

必须将需要执行的程序放在容器的镜像中,否则会因找不到程序而执行失败。
若执行的命令是一个 shell 脚本,则不能直接指定脚本作为执行命令,需要加上脚本的解释器。例如,脚本是 /data/scripts/health_check.sh,那么使用执行命令检查时,指定的程序应为:
		
sh
		
/data/scripts/health_check.sh

操作步骤

设置步骤以通过容器服务控制台创建 Deployment 为例:
1. 登录容器服务控制台,选择左侧导航栏中的 集群
2. 集群管理页面,选择需创建服务的集群 ID,进入集群的基本信息页面。
3. 工作负载 > Deployment页面,单击新建。Deployment 参数设置请参见 Deployment 管理
4. 新建 Deployment 页面,单击实例内容器中的显示高级设置
5. 容器健康检查中,以选择存活检查为例,设置以下参数。
检查方法:选择“执行命令检查”。
执行命令:输入以下内容。
		
sh
		
/data/scripts/health_check.sh
其余公共参数如下:
启动延时:单位秒。指定容器启动后,多久开始探测。例如,启动延时设置为5,那么健康检查将在容器启动5秒后开始。
间隔时间:单位秒。指定健康检查的频率。例如,间隔时间设置成10,那么集群会每隔10s检查一次。
响应超时:单位秒。指定健康探测的超时时间。对应到 TCP 端口探测、HTTP 请求探测、执行命令检查三种方式,分别表示 TCP 连接超时时间、HTTP 请求响应超时时间以及执行命令的超时时间。
健康阈值:单位次。指定健康检查连续成功多少次后,才判定容器是健康的。例如,健康阈值设置成3,则说明只有满足连续3次探测都成功,才认为容器是健康的。
注意
如果健康检查的类型为存活检查,那么健康阈值只能是1,用户设置成其它值将被视为无效。
不健康阈值:单位次。指定健康检查连续失败多少次后,才判定容器是不健康的。例如,不健康阈值设置成3,则说明只有满足连续3次都探测失败,才认为容器是不健康的。
6. 单击创建 Deployment
相似文档
  • 概述: 创建工作负载时,通常通过镜像来指定实例中容器所运行的进程。在默认的情况下,镜像会运行默认的命令,如果您需要运行一个特定的命令或重写镜像的默认值,您需要使用到以下三个设置: 工作目录(workingDir):指定当前的工作目录。 运行命令(command):控制镜像运行的实际命令。 命令参数(args):传递给运行命令的参数。
  • 操作场景: 腾讯云容器镜像服务(Tencent Container Registry,TCR)企业版面向具有严格数据安全及合规性要求、业务分布在多个地域、集群规模庞大的企业级容器客户,提供企业级的独享镜像安全托管服务。相较于个人版服务,企业版支持容器镜像安全扫描、跨地域自动同步、Helm Chart 托管、网络访问控制等特性,详情请参见 容器镜像服务。
  • 操作场景: 实例(Pod)自动扩缩容功能(Horizontal Pod Autoscaler,HPA)可以根据目标实例 CPU 利用率的平均值等指标自动扩展、缩减服务的 Pod 数量。本文介绍如何通过腾讯云容器服务控制台实现 Pod 自动扩缩容。
  • 实例(Pod)自动扩缩容功能(Horizontal Pod Autoscaler,HPA)可以根据目标实例 CPU 利用率的平均值等指标自动扩展、缩减服务的 Pod 数量。自动扩缩容时,可供在控制台进行设置的触发指标类型包括 CPU 指标、内存、硬盘、网络和 GPU 相关指标。此外,这些指标还可以在您通过 YAML 文件创建和编辑 HPA 时使用,本文将给出配置 YAML 文件示例。
  • 简介: 通过 ConfigMap 您可以将配置和运行的镜像进行解耦,使得应用程序有更强的移植性。ConfigMap 是有 key-value 类型的键值对,您可以通过控制台的 Kubectl 工具创建对应的 ConfigMap 对象,也可以通过挂载数据卷、环境变量或在容器的运行命令中使用 ConfigMap。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部