È possibile specificare l'impostazione della persistenza con i parametri l4_persistence e l7_persistence in NCP ConfigMap.

L'opzione disponibile per la persistenza di livello 4 è l'IP di origine. Le opzioni disponibili per la persistenza di livello 7 sono cookie e IP di origine. Il valore predefinito è <None>. Ad esempio
   # 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
Per la persistenza di livello 7, è anche possibile specificare il nome del 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>

Per un servizio LoadBalancer Kubernetes, è inoltre possibile specificare sessionAffinity nella specifica del servizio per configurare il comportamento della persistenza per il servizio se la persistenza di livello 4 globale è disattivata, ovvero se l'opzione l4_persistence è impostata su <None>. Se l'opzione l4_persistence è impostata su source_ip, è possibile utilizzare sessionAffinity nella specifica del servizio per personalizzare il timeout della persistenza per il servizio. Il timeout della persistenza del livello 4 predefinito è 10800 secondi (uguale a quello specificato nella documentazione di Kubernetes per i servizi (https://kubernetes.io/docs/concepts/services-networking/service). Tutti i servizi con timeout della persistenza predefinito condivideranno lo stesso profilo di persistenza del bilanciamento del carico di NSX-T. Verrà creato un profilo dedicato per ogni servizio con timeout della persistenza non predefinito.

Nota: Se il servizio back-end di un ingresso è un servizio di tipo LoadBalancer, il server virtuale di livello 4 per il servizio e il server virtuale di livello 7 per l'ingresso non possono avere impostazioni di persistenza diverse, ad esempio source_ip per il livello 4 e cookie per il livello 7. In questo scenario le impostazioni della persistenza per entrambi i server virtuali devono essere uguali ( source_ip, cookie o None) oppure una delle impostazioni è None (quindi l'altra impostazione può essere source_ip o cookie). Un esempio di questo scenario:
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