
svc 有endpoint,但是ipvs 没有后端的问题
externalTrafficPolicy: Local 修改为 externalTrafficPolicy: Cluster
保留客户端源 IP
由于此功能的实现,目标容器中看到的源 IP 将 不是客户端的原始源 IP。 要启用保留客户端 IP,可以在服务的 spec 中配置以下字段(支持 GCE/Google Kubernetes Engine 环境):
-
service.spec.externalTrafficPolicy
- 表示此服务是否希望将外部流量路由到节点本地或集群范围的端点。 有两个可用选项:Cluster(默认)和 Local。 Cluster 隐藏了客户端源 IP,可能导致第二跳到另一个节点,但具有良好的整体负载分布。 Local 保留客户端源 IP 并避免 LoadBalancer 和 NodePort 类型服务的第二跳, 但存在潜在的不均衡流量传播风险。 -
service.spec.healthCheckNodePort
- 指定服务的 healthcheck nodePort(数字端口号)。 如果未指定healthCheckNodePort
,服务控制器从集群的 NodePort 范围内分配一个端口。 你可以通过设置 API 服务器的命令行选项--service-node-port-range
来配置上述范围。 它将会使用用户指定的healthCheckNodePort
值(如果被客户端指定)。 仅当type
设置为 LoadBalancer 并且externalTrafficPolicy
设置为 Local 时才生效。
参考
https://kubernetes.io/zh/docs/tasks/access-application-cluster/create-external-load-balancer/
网友评论