svc中外部流量访问限制

1.参数

bash 复制代码
kubectl edit svc -n monitoring grafana
#参数:
externalTrafficPolicy: Cluster/Local
internalTrafficPolicy: Cluster

2.参数详解

复制代码
externalTrafficPolicy 针对外部流量(如通过 LoadBalancer 或 NodePort 进入的流量),
internalTrafficPolicy 针对集群内部流量(如 Pod 访问 Service 的 ClusterIP)。
externalTrafficPolicy: Cluster

此参数控制从集群外部进入的流量如何被路由。

  • 工作原理 :当外部流量通过 LoadBalancer 或 NodePort 到达任意一个节点时,无论该节点上是否有对应的 Pod,流量都会被接收。如果接收流量的节点上没有 Pod,kube-proxy 会通过一次额外的转发(即"二次跳转"),将流量路由到集群中其他拥有健康 Pod 的节点上。
  • 优点
    1. 优秀的负载均衡:外部负载均衡器可以将流量分发到所有节点,Kubernetes 会确保流量最终被均匀地分配给所有后端的 Pod,避免了因 Pod 分布不均导致的部分节点过载。
    2. 高可用性:即使某些节点上没有 Pod,这些节点依然可以作为流量的入口,保证了服务的访问路径不会中断。
  • 缺点
    1. 源 IP 丢失 :在跨节点转发时,为了能让响应包正确返回,kube-proxy 会执行源网络地址转换(SNAT)。这导致后端 Pod 看到的客户端源 IP 是节点的 IP,而不是真实的客户端 IP。
    2. 额外一跳:流量可能经历"客户端 -> 节点A -> 节点B -> Pod"的路径,多了一次网络跳转,会引入微小的延迟。
internalTrafficPolicy: Cluster

此参数控制从集群内部发起的流量如何被路由。

  • 工作原理 :当集群内的一个 Pod 访问 Service 的 ClusterIP 时,流量可以被路由到集群中任意一个健康的后端 Pod,无论它们在哪个节点上。
  • 优点
    1. 服务高可用:即使发起请求的 Pod 所在节点上没有目标服务的 Pod,请求也能被成功转发到其他节点,确保了集群内部服务调用的稳定性。
  • 缺点
    1. 源 IP 丢失 :与 externalTrafficPolicy: Cluster 类似,跨节点转发时也会发生 SNAT,目标 Pod 看到的源 IP 是发起请求的 Pod 所在节点的 IP
    2. 潜在的跨节点流量:流量可能会离开本地节点,通过网络访问其他节点上的 Pod,这会增加集群内部网络的开销和延迟。

3.参数对比与总结

特性 externalTrafficPolicy: Cluster internalTrafficPolicy: Cluster
流量来源 集群外部(如互联网) 集群内部(如其他 Pod)
路由范围 所有节点(可能跨节点转发) 所有节点(可能跨节点转发)
源 IP 保留 否(Pod 看到的是节点 IP) 否(Pod 看到的是源 Pod 的节点 IP)
负载均衡 优秀(全局均匀分布) 优秀(全局均匀分布)
网络性能 可能有一次额外跳转 可能产生跨节点流量
适用场景 需要最佳负载均衡和高可用的对外服务 需要与集群内所有 Pod 通信的内部服务
相关推荐
Elastic 中国社区官方博客31 分钟前
从告警到根因仅需 3 分钟:使用 Elastic Agent Builder 实现自动化根因分析
运维·数据库·人工智能·elasticsearch·自动化·可用性测试
月落汀兰43 分钟前
运维实战:LVS-NAT/DR 双模式完整落地,含一键启停脚本,线上直接复用
linux·运维·lvs
伞伞悦读1 小时前
【第12期】Windows 开发环境备份与恢复:软件、环境变量、Git、conda 和 Docker 卷完整方案
git·docker·conda
feng_you_ying_li1 小时前
linux之Udpsocket实践
linux·运维·c#
SatanII1 小时前
从零认识云计算|走进云时代,看懂服务器底层基石
运维·服务器·云计算
电商API_180079052471 小时前
自动化获取淘宝评论数据技术分享之API调用示例
大数据·运维·人工智能·自动化·网络爬虫
数智启示录1 小时前
实时数据湖 flink CDC + Kafka +Doris 【企业级实战】性能调优与生产运维闭环 09
运维·flink·kafka
福建佰胜张工1 小时前
西门子 ULTRAMAT23 分析仪 7MB2337‑0NH10‑3PW1 原理、调试、故障处理与现场运维全记录
大数据·运维·人工智能·自动化
啦啦啦啦啦zzzz1 小时前
ET和LT详解
linux·运维·服务器·网络·c++·网络编程
田径他爸来了1 小时前
嵌入式学习第32天(同时多个用户访问的服务器)
运维·服务器·学习