如何在Kuma服务网格中禁用注入Sidecar的Envoy就绪健康检查
你之前配置不生效的核心原因:KUMA_RUNTIME_KUBERNETES_VIRTUAL_PROBES_ENABLED 配置项仅用于控制是否开启Kuma对应用容器健康探针的重定向逻辑,和Kuma Sidecar自身的就绪探针无关,因此无法通过该配置修改Sidecar探针的触发频率。
可通过以下三种方案解决问题:
- 方案一:单服务定向覆盖(生产/测试环境调试推荐,不影响其他服务)
通过Kuma官方提供的ContainerPatch资源覆盖指定服务的Sidecar探针配置,示例配置如下:
apiVersion: kuma.io/v1alpha1 kind: ContainerPatch metadata: name: sidecar-readiness-probe-override namespace: kuma-system spec: targetRef: kind: MeshService name: <你要调试的服务名> patches: - op: replace path: /spec/containers/name=kuma-sidecar/readinessProbe/periodSeconds value: 300 # 单位为秒,此处修改为5分钟触发一次,调试完成后可删除该配置恢复默认
配置提交后,重启对应服务的Pod,新注入的Sidecar就会使用修改后的探针间隔。如果需要临时完全禁用探针触发,可直接将periodSeconds设置为3600(1小时),足够覆盖大部分调试场景。
- 方案二:全局修改Sidecar探针默认配置(集群整体调试场景使用)
修改kuma-control-plane的环境变量,调整所有新注入Sidecar的默认就绪探针参数:
# 调整就绪探针触发间隔,默认5秒 KUMA_RUNTIME_KUBERNETES_SIDECAR_READINESS_PROBE_PERIOD_SECONDS: 300 # 可选:同步调整失败阈值,避免探针超时误判 KUMA_RUNTIME_KUBERNETES_SIDECAR_READINESS_PROBE_FAILURE_THRESHOLD: 120
修改完成后重启kuma-control-plane,后续新创建的Pod注入Sidecar时都会使用该配置。
- 方案三:单Pod临时修改(快速调试单个实例使用)
直接编辑运行中的Pod配置,修改kuma-sidecar容器的就绪探针参数:
kubectl edit pod <你的Pod名称>
在yaml中找到spec.containers[name=kuma-sidecar].readinessProbe.periodSeconds字段,修改为需要的间隔值,保存后立即生效,无需重启Pod。该修改仅对当前运行的Pod有效,Pod重建后会恢复默认配置。
内容的提问来源于stack exchange,提问作者user3550687
相关产品推荐
相关产品推荐

