Citadel 的健康检查
当健康检查功能被开启,Citadel 中的 检测器 模块会定期向 Citadel 的 CSR gRPC 服务发送 CSRs 并校验响应信息以此判断服务的健康状况。如果 Citadel 服务是健康状态,检测器 会更新 健康状态文件 的 更新时间 ,否则什么都不做。Citadel 依赖 Kubernetes 的健康和就绪检测功能,使用命令行检查 pod 中 健康状态文件 的 更新时间 。如果这个文件有一段时间不更新了,Kubelet 将会重启 Citadel 容器。
注意:Citadel 的健康检查目前只提供了对 CSR 服务 API 的支持,如果没有使用 或者额外的虚拟机器。
为了完成这个任务,你可以,并设置 为 true
。
部署启用健康检查的 Citadel
重新部署 Citadel 启用健康检查:
Citadel 会记录健康检查的结果,运行下面的命令行:
会看到类似下面这样的输出:
(可选)健康检查的配置
这部分的讨论关于如何修改健康检查的配置。打开 citadel-health-check.yaml
文件,并定位到下面的内容:
健康状态文件的路径为 liveness-probe-path
和 probe-path
。你应该同时更新在 Citadel 和 中的路径。如果 Citadel 是健康的,liveness-probe-interval
的值用于更新健康状态文件的周期。Citadel 的健康检查控制器使用 probe-check-interval
的值作为请求 Citadel CSR 服务的周期。interval
是自上次更新健康状况文件至今的最长时间,供检测器判断 Citadel 是否健康。initialDelaySeconds
和 的值确定初始化延迟以及每次激活 livenessProbe
的时间间隔。
延长 probe-check-interval
会减少健康检查的开销,但是一旦遇到故障情况,健康监测器也会更晚的得到故障信息。为了避免检测器因为临时故障重启 Citadel,检测器的 interval
应该设置为 liveness-probe-interval
的 倍,这样就让检测器能够容忍持续 N-1
次的检查失败。
- 在 Citadel 上禁用健康检查:
相关内容
为您展示如何对 Istio 服务做健康检查。
Istio v1beta1 授权策略的设计原则、基本概述及迁移操作。
一种更安全管理 Istio webhook 的方法。
将需要隔离的环境部署到单独的网格中,并通过网格联邦启用网格间通信。
使用 Istio 实现零代码改动保护多云 Kubernetes 应用。