Implementing Sticky Session Through Load Balancing
Concepts
Sticky sessions ensure continuity and consistency when you access applications. If a load balancer is deployed between a client and backend servers, connections may be forwarded to different servers for processing. Sticky sessions can resolve this issue. After sticky session is enabled, requests from the same client will be continuously distributed to the same backend server through load balancing.
For example, in most online systems that require user identity authentication, a user needs to interact with the server for multiple times to complete a session. These interactions require continuity. If sticky session is not configured, the load balancer may allocate certain requests to different backend servers. Since user identity has not been authenticated on other backend servers, interaction exceptions such as a user login failure may occur.
Therefore, select a proper sticky session type based on the application environment.
OSI Layer | Listener Protocol and Networking | Sticky Session Type | Scenarios Where Sticky Sessions Become Invalid |
---|---|---|---|
Layer 4 | TCP- or UDP-compliant Services | Source IP address: The source IP address of each request is calculated using the consistent hashing algorithm to obtain a unique hashing key, and all backend servers are numbered. The system allocates the client to a particular server based on the generated key. This allows requests from the same IP address are forwarded to the same backend server. |
|
Layer 7 | HTTP- or HTTPS-compliant ingresses |
|
|
When creating a load balancer, configure sticky sessions by setting kubernetes.io/elb.lb-algorithm to ROUND_ROBIN or kubernetes.io/elb.lb-algorithm to LEAST_CONNECTIONS. If you set kubernetes.io/elb.lb-algorithm is to SOURCE_IP, source IP address-based sticky sessions are supported. In this case, you do not need to configure sticky sessions again.
- Concepts
- Enabling Layer 4 Sticky Session in a CCE Standard Cluster
- Enabling Layer 4 Sticky Session in a CCE Turbo Cluster
- Enabling Layer 7 Sticky Session in a CCE Standard Cluster
- Enabling Layer 7 Sticky Session in a CCE Turbo Cluster