如何通过EKS CLI检查集群内微服务及Pod间的网络连通性
EKS 1.22 集群CLI查询微服务通信及Pod连通性方案
可以通过CLI工具实现上述查询,常用操作方法如下:
注意:操作前请确保本地kubectl版本与EKS 1.22集群版本差异不超过1个小版本,避免出现命令不兼容问题。
1. Pod间网络连通性排查
- 基础连通性测试
若源Pod内置了ping、nc、curl等网络工具,可直接通过exec进入Pod执行测试:
测试网络连通:kubectl exec -it <源Pod名称> -n <命名空间> -- ping <目标Pod ClusterIP>
测试端口连通:kubectl exec -it <源Pod名称> -n <命名空间> -- nc -zv <目标Pod ClusterIP> <目标端口> - 无内置工具场景的临时调试
EKS 1.22默认开启临时容器特性,可注入带全套网络工具的调试容器排查:
命令:kubectl debug -it <源Pod名称> -n <命名空间> --image=nicolaka/netshoot --share-processes
进入调试容器后可直接使用ping、traceroute、tcpdump等工具排查连通问题。 - 网络策略校验
先确认是否存在网络策略阻断Pod通信:
查看所有命名空间网络策略:kubectl get networkpolicy -A
查看具体网络策略规则:kubectl describe networkpolicy <策略名称> -n <命名空间>
2. 微服务通信状态查询
- 原生Service关联校验
先确认微服务对应的Service后端端点是否正常:
命令:kubectl get endpoints <Service名称> -n <命名空间>
若返回的端点列表为空,说明Service的标签选择器配置错误,会导致微服务调用失败。 - 服务网格场景查询(若部署了Istio)
用istioctl可直接查询服务通信的配置和状态:
查看Sidecar代理同步状态:istioctl proxy-status
查看Pod的路由规则配置:istioctl pc routes <Pod名称>.<命名空间>
一键扫描服务网格配置错误:istioctl analyze - 节点层面连接状态查询
可进入Pod所在的EC2节点查看实际连接状态:
进入节点命令:kubectl node-shell <节点名称>
查看指定Pod的所有连接:ss -tunp | grep <PodIP>
内容的提问来源于stack exchange,提问作者dev
相关产品推荐
相关产品推荐

