本文介绍注入Sidecar后,健康检查失败或者无效的问题现象、问题原因和解决方案。
问题现象
注入Sidecar后,健康检查失败或者无效。本文以TCP健康检查端口8087为例,启用mTLS后,在容器服务管理控制台的容器组详情页面事件页签下,未显示8087端口的健康检查信息。
问题原因
在服务网格开启mTLS后,kubelet向Pod发送的健康检查请求被Sidecar拦截,而kubelet没有对应的TLS证书,导致健康检查失败。
解决方案
配置端口健康检查流量免于经过Sidecar代理,具体操作步骤如下:
配置端口健康检查流量免于经过Sidecar代理
登录ASM控制台。
在左侧导航栏,选择 。
在网格管理页面,找到待配置的实例,单击实例的名称或在操作列中单击管理。
在网格详情页面左侧导航栏,选择 。
在命名空间页签下,选中相应的命名空间,单击按端口或地址来启用/禁用Sidecar代理页签,配置相应参数。
参数配置说明如下:
参数
说明
设置端口使入口流量免于经过Sidecar代理
配置入口流量免于经过Sidecar代理的端口,本文配置为8087。
设置端口使出口流量免于经过Sidecar代理
配置出口流量免于经过Sidecar代理的端口,本文配置为8087。
配置完成后,单击更新设置。
查看健康检查结果
登录容器服务管理控制台。
- 在控制台左侧导航栏,单击集群。
- 在集群列表页面,单击目标集群名称或者目标集群右侧操作列下的详情。
- 在集群管理页左侧导航栏,选择 。
单击目标容器组名称或右侧的详情,进入容器组详情页面。
在容器组详情页面,单击事件页签。
如下图所示,端口8087的健康检查生效。
文档内容是否对您有帮助?