您可以使用 NCP ConfigMap 中的 l4_persistencel7_persistence 參數指定持續性設定。

第 4 層持續性的可用選項為來源 IP。第 7 層持續性的可用選項為 Cookie 和來源 IP。預設值為 <None>。例如,
   # Choice of persistence type for ingress traffic through L7 Loadbalancer.
   # Accepted values:
   # 'cookie'
   # 'source_ip'
   l7_persistence = cookie

   # Choice of persistence type for ingress traffic through L4 Loadbalancer.
   # Accepted values:
   # 'source_ip'
   l4_persistence = source_ip
您也可以針對第 7 層持續性指定 Cookie 的名稱。
    # Specify a custom cookie name for NSX default LB when l7_persistence type
    # is set to cookie. It has no effect if l7_persistence is not set.
    #cookie_name = <None>

如果已關閉全域第 4 層持續性,您也可以為 Kubernetes 負載平衡器服務指定服務規格上的 sessionAffinity,以設定服務的持續性行為,也就是將 l4_persistence 設定為 <None>。如果將 l4_persistence 設為 source_ip,服務規格的 sessionAffinity 則可用於自訂服務的持續性逾時。預設的第 4 層持續性逾時為 10800 秒 (如同服務 Kubernetes 說明文件中指定的值 (https://kubernetes.io/docs/concepts/services-networking/service)。具有預設持續性逾時的所有服務,將共用相同的 NSX-T 負載平衡器持續性設定檔。會為每個使用非預設持續性逾時的服務建立專用的設定檔。

備註: 如果入口的後端服務是一種類型為負載平衡器的服務,則此服務的第 4 層虛擬伺服器和此入口的第 7 層虛擬伺服器不能有不同的持續性設定,例如,第 4 層的 source_ip 和第 7 層的 cookie。在此案例中,這兩個虛擬伺服器的持續性設定必須相同 ( source_ipcookieNone),或者其中一個虛擬伺服器是 None (則另一個設定可以是 source_ipcookie)。此案例的範例:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: cafe-ingress
spec:
  rules:
  - host: cafe.example.com
    http:
      paths:
      - path: /tea
        backend:
          serviceName: tea-svc
          servicePort: 80
-----
apiVersion: v1
kind: Service
metadata:
  name: tea-svc <==== same as the Ingress backend above
  labels:
    app: tea
spec:
  ports:
  - port: 80
    targetPort: 80
    protocol: TCP
    name: tcp
  selector:
    app: tea
  type: LoadBalancer