高级Kubernetes网络与多集群联邦:深入解析与实践指南
1. 服务基础信息与客户端IP保留
在Kubernetes中,服务有着一系列的基础信息,例如:
| 信息类型 | 详情 |
| — | — |
| Selector | app=example |
| Type | LoadBalancer |
| IP | 10.67.252.103 |
| LoadBalancer Ingress | 123.45.678.9 |
| Port | 80/TCP |
| NodePort | 32445/TCP |
| Endpoints | 10.64.0.4:80,10.64.1.5:80,10.64.2.4:80 |
| Session Affinity | None |
有时候,服务可能会对客户端的源IP地址感兴趣。在Kubernetes 1.5之前,无法获取该信息。在Kubernetes 1.5中,仅在GKE上通过注解可以使用一个beta功能来获取源IP地址。而在Kubernetes 1.7中,API增加了保留原始客户端IP的功能。
若要保留原始客户端IP地址,需要配置服务规范中的以下两个字段:
-service.spec.externalTrafficPolicy:该字段决定服务应将外部流量路由到节点本地端点还是集群范围的端点(默认是集群范围)。选择“cluster”,不会暴露客户端源IP,可能会增加到不同节点的一跳,但负载分布均匀;选择“Local”,可以保留客户端源IP,并且只要服务类型是LoadBalancer或NodeP