对于 Rancher v2.x,我们已取代了健康检查微服务,而是利用 Kubernetes 原生的健康检查进行支持。
使用本文档修改 Rancher v2.x 的工作负载和服务并在 中列出health_check
. 您可以通过配置活性探针(即健康检查)来修正它们。
例如,对于下面的图像,我们将为 web
和 weblb
工作负载配置活性探针(即迁移工具 CLI 输出的 Kubernetes 清单)。
为“webLB”工作负载和“web”工作负载解决“health_check”问题
在 Rancher v1.6 中,您可以添加健康检查来监控特定服务的操作。这些检查由 Rancher 健康检查微服务执行,该服务在与托管受监控服务的节点不同的节点容器中启动(但是,Rancher v1.6.20 和更高版本也运行本地健康状况检查容器,作为另一个节点上主健康检查容器的冗余)。健康检查设置存储在您堆栈的rancher-compose.yml
文件中。
健康检查微服务具有两种类型的健康检查,它们具有超时,检查间隔等各种选项:
HTTP 健康状况检查:
这些健康检查会监控对指定路径的 HTTP 请求,并检查响应是否为预期响应(与健康检查一起配置)。
下图显示了健康检查微服务,该服务评估运行 Nginx 的容器。请注意,微服务正在跨节点进行检查。
在 Rancher v2.x 中,健康检查微服务已被 Kubernetes 原生的健康检查机制探针取代。这些探针类似于 Rancher v1.6 健康检查微服务,可监控 Pod 上 TCP 和 HTTP 的运行状况。
本地健康检查
与 Rancher v1.6 跨主机执行的健康检查不同,Rancher v2.x 中的探针发生在由 kubelet 执行的相同主机上。
Kubernetes 包含两种不同的探针类型:活性检查和就绪检查。
活性检查:
检查受监控的容器是否正在运行。如果探针报告失败,则 Kubernetes 将杀死 Pod,然后根据部署重新启动它重新启动策略。
就绪检查:
检查容器是否准备好接受和服务请求。如果探针报告失败,则从公众中隔离该 pod,直到其自愈为止。
下图显示了 kubelet 在它们正在监控的容器上运行探针(是在每个节点上运行的主要 “agent”)。左侧的节点正在运行活性探针,而右侧的节点正在运行就绪检查。请注意,kubelet 正在扫描其主机节点上的容器,而不是像 Rancher v1.6 中那样跨节点扫描容器。
无法将健康检查从 Compose 文件解析为 Kubernetes 清单。因此,如果要向 Rancher v2.x 工作负载添加健康检查,则必须手动添加它们。
使用 Rancher v2.x UI 可以向 Kubernetes 工作负载添加 TCP 或 HTTP 健康检查。默认情况下,Rancher 要求您为工作负载配置就绪检查,并使用相同的配置应用活性检查。可选,您可以定义单独的活性检查。
如果探针报告失败,那么将根据工作负载规范中定义的重新启动策略重新启动容器。此设置等效于 Rancher v1.6 中的健康检查的策略参数。
编辑output.txt
中调用的 deployments 时,使用健康检查部分配置探针。
编辑部署:健康检查部分
配置检查
TCP 检查
TCP 检查通过尝试指定的端口打开并与 Pod 的连接来监控部署的运行状况。如果探针可以打开端口,则认为它是健康的。未能打开它被认为是不健康的,这会通知 Kubernetes 应该杀死该 pod,然后根据重新启动策略更换它。(这仅适用于活性探。对于就绪探针,它将标记 pod 为未就绪)。
您可以通过选择健康检查部分中的TCP 连接成功打开选项来配置探针以及指定对应行为的值。有关更多信息,请参阅。有关设置探针超时和阈值的帮助,请参见健康检查参数映射。
使用 Rancher v2.x 配置就绪检查时,会将
readinessProbe
指令和您设置的值添加到部署的 Kubernetes 清单中。配置就绪检查还会自动向部署中添加活性检查(livenessProbe
)。
在为 TCP 或 HTTP 协议配置就绪检查时,您可以通过单击定义单独的活性检查来配置单独的活性检查。有关设置探针超时和阈值的帮助,请参阅健康检查参数映射。
其他探针选项
与 v1.6 一样,Rancher v2.x 允许您使用 TCP 和 HTTP 协议执行健康检查。但是,Rancher v2.x 还允许您通过在 Pod 内运行命令来检查其状态。如果在运行该命令后容器以代码0
退出,则该容器被认为是健康的。
您可以配置活性检查或就绪检查,以执行指定的命令,方法是在时,从 健康检查 中选择容器中进程退出状态码检查(0)
。
在配置就绪检查和活性检查时,Rancher 会提示您填写各种超时和阈值,这些值和值确定探针是成功还是失败。下表中的参考表显示了 Rancher v1.6 中的等效健康检查值。