VK Cloud logo
Updated at April 25, 2024   09:18 AM

Load balancer

General information

The load balancer allows you to distribute incoming traffic between multiple virtual backend servers and thereby ensure high availability for the services provided by those servers. If one or more servers fail, traffic will be redirected to the remaining servers. Also the separate type of load balancer is used to power other VK Cloud platform services.

The VK Cloud platform load balancer is based on OpenStack Octavia, which has HAProxy at its core. OpenStack Octavia gives the balancer the following capabilities:

  • Proxying and balancing HTTP-, HTTPS-, UDP- and TCP-connections (the latter including proxy-protocol support).

    Proxy protocol when using the TCP protocol allows you to pass information about connections (such as the client's IP address) to the server. For the server to be able to process such information, it must itself support this protocol. The Proxy protocol is supported by NGINX, Apache, Envoy and other products.

  • Proxying and balancing HTTP/2 connections in addition to HTTP/1.1.

  • Terminating SSL connections on the balancer.

  • Fine tune timeouts.

  • Different balancing methods.

  • Adjustment of weights for backends.

For fault tolerance, two instances of the balancer are supported, one in active mode and one in standby mode. State synchronization and traffic switching between these balancers takes place using the VRRP protocol. From the user's point of view this fault-tolerant configuration looks like a single balancer.

To ensure maximum balancer performance:

  • Provide keep-alive connectivity to the backends over HTTP/1.1.
  • Use a standard Ethernet MTU of 1500 bytes for incoming traffic to the balancer.

Under these conditions, the balancer can reach the peak performance, handling 1 to 1.5 gigabits of traffic per second and about 10,000 requests per second.

Types of load balancers

There are two types of load balancers in VK Cloud. You can see the type in personal account.

Different types of balancers are charged differently.

This balancer is user-created and can be used to provide fault tolerance and flexible application scaling: