È 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. 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