为什么注入Sidecar后,健康检查总失败或者无效

更新时间:
复制 MD 格式

本文介绍注入Sidecar后,健康检查失败或者无效的问题现象、问题原因和解决方案。

问题现象

注入Sidecar后,健康检查失败或者无效。本文以TCP健康检查端口8087为例,启用mTLS后,在容器服务管理控制台的容器组详情页面事件页签下,未显示8087端口的健康检查信息。

问题原因

在服务网格开启mTLS后,kubelet向Pod发送的健康检查请求被Sidecar拦截,而kubelet没有对应的TLS证书,导致健康检查失败。

解决方案

配置端口健康检查流量免于经过Sidecar代理,具体操作步骤如下:

配置端口健康检查流量免于经过Sidecar代理

  1. 登录ASM控制台。

  2. 在左侧导航栏,选择服务网格 > 网格管理。

  3. 在网格管理页面,找到待配置的实例,单击实例的名称或在操作列中单击管理。

  4. 在网格详情页面左侧导航栏,选择数据面组件管理 > Sidecar代理配置。

  5. 在命名空间页签下,选中相应的命名空间,单击按端口或地址来启用/禁用Sidecar代理页签,配置相应参数。

    参数配置说明如下:

    参数

    说明

    设置端口使入口流量免于经过Sidecar代理

    配置入口流量免于经过Sidecar代理的端口,本文配置为8087。

    设置端口使出口流量免于经过Sidecar代理

    配置出口流量免于经过Sidecar代理的端口,本文配置为8087。

  6. 配置完成后,单击更新设置。

查看健康检查结果

  1. 登录容器服务管理控制台,在左侧导航栏选择集群列表。

  2. 在集群列表页面,单击目标集群名称或者目标集群右侧操作列下的详情。

  3. 在集群管理页左侧导航栏,选择工作负载 > 容器组。

  4. 单击目标容器组名称或右侧的详情,进入容器组详情页面。

  5. 在容器组详情页面,单击事件页签。查看端口8087的健康检查是否生效。