0

我在 GKE 有一个 Kubernetes 服务。目前它有 Session Affinity:ClientIP。在 GCP 负载均衡器控制台中,它显示为“客户端 IP”

我应该将它设置为什么值,以便在 GCP 负载均衡器控制台中显示为“客户端 IP、端口和协议”?

我看到的所有文档都提到 Session Affinity 可以分配为“ClientIP”或“no”(默认情况下)。他们都没有告诉我有第三个选项,而如果你检查 GCP 负载均衡器,它有多个会话关联选项:无;客户端IP;客户端 IP 和协议;客户端 IP、端口和协议

这是服务文件:

---
apiVersion: v1
kind: Service
metadata:
  namespace: test
  name: test
  annotations:
    cloud.google.com/load-balancer-type: Internal
spec:
  type: LoadBalancer
  ports:
    - port: XXX
      protocol: TCP
      targetPort: XXX
      name: XXX
  selector:
    app: XXX
  sessionAffinity: ClientIP
4

1 回答 1

0

会话亲和性,有时称为粘性会话,将来自最终用户的所有请求与单个 pod 相关联。这意味着从客户端到 pod 的所有流量都将被定向到同一个 pod。

如果您想确保来自特定客户端的连接每次都传递到同一个 Pod,您可以通过将 service.spec.sessionAffinity 设置为“ClientIP”来根据客户端的 IP 地址选择会话亲和性

来自最新的 Kubernetes API ServiceSpec v1 核心

会话亲和性

支持“客户端IP”和“无”。用于维护会话亲和性。启用基于客户端 IP 的会话亲和性。必须是 ClientIP 或 None。默认为无。更多信息: https ://kubernetes.io/docs/concepts/services-networking/service/#virtual-ips-and-service-proxies

所以,ClientIP或者None- 你没有第三选择。

于 2021-04-02T23:42:34.467 回答