Configurer l'affinité de session ou la persistance sur le NetScaler Ingress
Les paramètres d'affinité de session ou de persistance sur le NetScaler Ingress vous permettent de diriger les requêtes client vers le même serveur sélectionné, quel que soit le serveur virtuel du groupe qui reçoit la requête client. Lorsque le temps de persistance configuré expire, n'importe quel serveur virtuel du groupe est sélectionné pour les requêtes client entrantes.
Si la persistance est configurée, elle annule les méthodes d'équilibrage de charge une fois le serveur sélectionné. Elle maintient les états des connexions sur les serveurs représentés par ce serveur virtuel. Le NetScaler utilise ensuite la méthode d'équilibrage de charge configurée pour la sélection initiale d'un serveur, mais transmet à ce même serveur toutes les requêtes ultérieures du même client.
Le type de persistance le plus couramment utilisé est la persistance basée sur les cookies.
Configurer la persistance basée sur les cookies
Lorsque vous activez la persistance basée sur les cookies, le NetScaler ajoute un cookie HTTP dans le champ d'en-tête
Set-Cookie de la réponse HTTP. Le cookie contient des informations sur le service auquel les requêtes HTTP doivent être envoyées. Le client stocke le cookie et l'inclut dans toutes les requêtes ultérieures, et l'ADC l'utilise pour sélectionner le service pour ces requêtes.
Le NetScaler insère le cookie
<NSC_XXXX>= <ServiceIP> <ServicePort>.
Où :
-
<<NSC_XXXX>est l'ID du serveur virtuel qui est dérivé du nom du serveur virtuel. -
<<ServiceIP>est la valeur hexadécimale de l'adresse IP du service. -
<<ServicePort>est la valeur hexadécimale du port du service.
Le NetScaler chiffre
ServiceIP et ServicePort lorsqu'il insère un cookie, et les déchiffre lorsqu'il reçoit un cookie.
Par exemple,
a.com=ffffffff02091f1045525d5f4f58455e445a4a423660;expires=Fri, 23-Aug-2019 07:01:45.
Vous pouvez configurer le paramètre de persistance sur le NetScaler Ingress, en utilisant l'annotation Ingress suivante fournie par le NetScaler Ingress Controller :
ingress.citrix.com/lbvserver: '{"apache":{"persistenceType":"COOKIEINSERT", "timeout":"20", "cookiename":"k8s_cookie"}}'
Où :
-
timeoutspécifie la durée de la persistance. Si des cookies de session sont utilisés avec une valeurtimeoutde 0, aucune date d'expiration n'est spécifiée par NetScaler, quelle que soit la version du cookie HTTP utilisée. Le cookie de session expire lorsque le navigateur Web est fermé. -
cookienamespécifie le nom du cookie avec un maximum de 32 caractères. S'il n'est pas spécifié, le nom du cookie est généré en interne. -
persistenceTypespécifie ici le type de persistance à utiliser,COOKIEINSERTest utilisé pour la persistance basée sur les cookies. Outre les cookies, d'autres options peuvent également être utilisées avec les arguments appropriés et d'autres paramètres requis.
Les valeurs possibles sont SOURCEIP, SSLSESSION, DESTIP, SRCIPDESTIP, etc.
Persistance de l'adresse IP source
Lorsque la persistance de l'adresse IP source est configurée sur le NetScaler Ingress, vous pouvez définir la persistance sur un serveur virtuel d'équilibrage de charge, ce qui crée une affinité pour les requêtes ultérieures provenant du même client.
Voici un exemple d'annotation Ingress pour configurer la persistance de l'adresse IP source :
ingress.citrix.com/lbvserver: '{"apache":{"persistenceType":"SOURCEIP", "timeout":"10"}}'
Persistance de l'ID de session SSL
Lorsque la persistance de l'ID de session SSL est configurée, l'appliance NetScaler utilise l'ID de session SSL, qui fait partie du processus de négociation SSL, pour créer une session de persistance avant que la requête initiale ne soit dirigée vers un service. Le serveur virtuel d'équilibrage de charge dirige les requêtes ultérieures qui ont le même ID de session SSL vers le même service. Ce type de persistance est utilisé pour les services de pont SSL.
Voici un exemple d'annotation Ingress pour configurer la persistance de l'ID de session SSL :
ingress.citrix.com/lbvserver: '{"apache":{"persistenceType":"SSLSESSION"}}'
Persistance basée sur l'adresse IP de destination
Dans ce type de persistance, lorsque le NetScaler Ingress reçoit une requête d'un nouveau client, il crée une session de persistance basée sur l'adresse IP du service sélectionné par le serveur virtuel (l'adresse IP de destination). Par la suite, il dirige les requêtes vers la même adresse IP de destination vers le même service. Ce type de persistance est utilisé avec l'équilibrage de charge de liens.
Voici un exemple d'annotation Ingress pour configurer la persistance basée sur l'adresse IP de destination :
ingress.citrix.com/lbvserver: '{"apache":{"persistenceType":"DESTIP"}}'
Persistance basée sur l'adresse IP source et de destination
Dans ce type de persistance, lorsque l'appliance NetScaler reçoit une requête, elle crée une session de persistance basée à la fois sur l'adresse IP du client (l'adresse IP source) et sur l'adresse IP du service sélectionné par le serveur virtuel (l'adresse IP de destination). Par la suite, elle dirige les requêtes provenant de la même adresse IP source et vers la même adresse IP de destination vers le même service.
Voici un exemple d'annotation Ingress pour configurer la persistance basée sur l'adresse IP source et de destination :
ingress.citrix.com/lbvserver: '{"apache":{"persistenceType":"SRCIPDESTIP"}}'