暴露端口
spec:
clusterIP: 10.11.0.180
ports:
- port: 80
protocol: TCP
targetPort: 80
name
nodePort
节点上启用的端口
type=NodePort or LoadBalancer
port
svc 发布的端口
targetPort
pod 端口
protocol
TCP(默认)
UDP
外部流量策略
spec:
externalTrafficPolicy: Local
对于 NodePort ,通过 nodeIP:Port 访问, 节点上并没有对应的 Pod,需要额外的网络跳转才能到达其他节点上 Pod,在跳转过程中由于对数据包进行了 SNAT,所以看到的是 node 的 IP
默认 Cluster, 访问此 svc 的轮询后面 pod ,隐藏客户端 ip
client -> 192.168.80.201:30080 pod 的 客户端ip 为 node01 上的 隧道 ip
client -> 192.168.80.202:30080 pod 的 客户端ip 为 192.168.80.202
设为 Local ,只会代理到本地运行的 Pod,如果本地没有连接失败,需要确保负载均衡器将连接转发给至少具有一个 Pod 的 node
client -> 192.168.80.201:30080 pod 的 客户端ip 为 192.168.80.111
client -> 192.168.80.202:30080 失败,ipvs 没有 pod 的指向
seesion亲和
spec:
sessionAffinity:
sessionAffinityConfig.clientIP.timeoutSeconds:
sessionAffinity
ClientIP
None 默认
sessionAffinityConfig.clientIP.timeoutSeconds
设置最大会话停留时间
默认值为 10800 秒,即 3 小时
