K8S: 访问pod如何获取客户端真实IP


https://kubernetes.io/docs/tutorials/services/source-ip/#source-ip-for-services-with-type-clusteriphtml


保留客户端源 IP
node

由于对于这个特性的代码实现的关系,目标容器看到的源 IP 不是客户端的源 IP。如须要保留客户端源 IP, 能够配置一下这些服务的 spec 字段(GCE/GKE 环境中可支持):后端

  • service.spec.externalTrafficPolicy - 若是这个服务须要将外部流量路由到 本地节点或者集群级别的端点,那么须要指明该参数。存在两种选项:”Cluster”(默认)和 “Local”。 “Cluster” 隐藏源 IP 地址,可能会致使第二跳(second hop)到其余节点,可是全局负载效果较好。”Local” 保留客户端源 IP 地址,避免 LoadBalancer 和 NodePort 类型服务的第二跳,可是可能会致使负载不平衡。微信

  • service.spec.healthCheckNodePort - 定义服务的 healthCheckNodePort (数字端口号)。 若是没有声明,服务 API 后端会用分配的 nodePort 建立 healthCheckNodePort。若是客户端 指定了 nodePort,则会使用用户自定义值。这只有当类型被设置成 “LoadBalancer” 而且 externalTrafficPolicy 被设置成 “Local” 时,才会生效。spa


http://docs.kubernetes.org.cn/759.html.net


注意若是Serivce 是ClusterIP 类型,那么须要对Ingress-controller-slb 的service 增长:3d

externalTrafficPolicy:Localhtm


本文分享自微信公众号 - 云服务圈(heidcloud)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。blog

相关文章
相关标签/搜索