You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过IP地址定位Kubernetes集群中发起请求的资源?

定位Kubernetes集群中发起TLS握手错误请求的IP来源

已知集群内IP 10.1.239.128 向cert-manager-webhook和vault Pod发起请求,触发TLS握手错误,常规查询Service、Endpoints等资源未找到对应来源,可尝试以下排查方法:

1. 直接匹配所有Pod的IP

遍历集群内所有Pod的IP地址,直接定位归属Pod:

kubectl get pods --all-namespaces -o wide | grep 10.1.239.128

若该IP属于某个Pod,命令会返回对应的Pod名称、命名空间及所在节点信息。

2. 检查集群节点IP

确认该IP是否为集群节点本身的IP(比如控制平面或工作节点上的系统进程发起请求):

kubectl get nodes -o wide

对比节点的Internal-IP或External-IP字段,匹配后可进一步检查节点上的进程(如kubelet、系统服务等)。

3. 节点上抓包分析请求细节

在目标Pod所在节点上,通过tcpdump抓包获取该IP的请求特征:

  1. 先确定目标Pod所在节点:
kubectl get pod cert-manager-webhook-6787f645b9-s5fxl -o wide | awk '{print $7}'
  1. 登录节点(Microk8s可使用microk8s kubectl node-shell <节点名称>),执行抓包命令:
tcpdump -i any host 10.1.239.128 and port <服务端口>

(cert-manager-webhook默认端口为443,vault默认端口为8200)
抓包结果可展示请求的协议、内容片段,辅助判断请求发起者的类型。

4. 排查容器运行时中的特殊容器

若IP不在Pod和节点列表中,可能是容器运行时的沙箱容器、CNI辅助容器等,直接通过容器运行时工具查询:
Microk8s默认使用containerd,执行:

crictl ps --all -o wide | grep 10.1.239.128

若找到对应容器,可通过crictl inspect <容器ID>查看其详细配置和所属组件。

5. 检查集群网络组件日志

排查kube-proxy、CNI插件等网络组件是否发起了该请求:

  • 查看kube-proxy日志:
kubectl logs -n kube-system pod/kube-proxy-<节点名称>
  • 查看Calico(Microk8s默认CNI)组件日志:
kubectl logs -n kube-system -l k8s-app=calico-node

6. 确认IP是否属于集群网络范围

检查该IP是否在集群的Pod CIDR或Service CIDR范围内,判断是否为集群外请求:

microk8s kubectl cluster-info dump | grep -E "podCIDR|serviceCIDR"

若不在范围内,需检查集群Ingress、LoadBalancer或防火墙配置,确认外部访问路径。

内容的提问来源于stack exchange,提问作者marcel h

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 20:40:29