Kubernetes 获取客户端真实 IP:externalTrafficPolicy 深度解析
概述在 Kubernetes 中获取客户端真实 IP 是一个常见需求,但由于 kube-proxy 的 SNAT 机制,往往获取到的是中间节点的 IP。externalTrafficPolicy 字段提供了解决方案。 核心知识: 🔍 Service 外部流量策略 📡 客户端 IP 保留机制 ⚖️ Cluster vs Local 模式 🎯 负载均衡权衡 适用场景: 需要记录真实客户端 IP 访问控制和安全审计 流量分析和用户画像 地域识别和限流 externalTrafficPolicy 详解什么是 externalTrafficPolicy定义: externalTrafficPolicy 是 Kubernetes Service 中控制外部流量转发策略的字段,决定流量如何路由到 Pod 以及是否保留客户端源 IP。 可选值: 值 说明 默认 Cluster 流量可转发到任意节点的 Pod ✅ 是 Local 流量仅转发到本节点的 Pod ❌ 否 配置示例: 123456789101112apiVersion: v1kind: Servicem...
K8s 在不同或相同 Namespace 下服务间访问
同一个 NamespaceK8s 给每个内部服务提供了一个内部使用的 host,格式为 <servicename>.<namespace>。可以在代码中直接访问 http://<servicename>.<namespace>:<port> 来访问另一个服务。如果是部署到默认 Namespace 下的服务,Namespace 为 default。 不同 Namespace无论是相同还是不同 Namespace,都可以通过以下格式访问: {SERVICE_NAME}.{NAMESPACE_NAME}.svc.cluster.local {SERVICE_NAME}.{NAMESPACE_NAME}(短格式) Namespace 的作用是形成逻辑上的"组",以方便不同组的资源进行隔离使用和管理。 例如:my-service.default.svc.cluster.local 中,default 是命名空间,svc 表示这是...
