Octavia Amphora load balancing¶
Available since MOSK 23.1 TechPreview
Octavia Amphora (Amphora v2) load balancing provides a scalable and flexible solution for load balancing in cloud environments. MOSK deploys Amphora load balancer on each node of the OpenStack environment ensuring that load balancing services are easily accessible, highly scalable, and highly reliable.
Compared to the Octavia Tungsten Fabric driver for LBaaS v2 solution, Amphora offers several advanced features including:
Full compatibility with the Octavia API, which provides a standardized interface for load balancing in MOSK OpenStack environments. This makes it easier to manage and integrate with other OpenStack services.
Layer 7 policies and rules, which allow for more granular control over traffic routing and load balancing decisions. This enables users to optimize their application performance and improve the user experience.
Support for the UDP protocol, which is commonly used for real-time communications and other high-performance applications. This enables users to deploy a wider range of applications with the same load balancing infrastructure.
Enabling Octavia Amphora load balancing¶
By default, MOSK uses the Octavia Tungsten Fabric load balancing. Once Octavia Amphora load balancing is enabled, the existing Octavia Tungsten Fabric driver load balancers will continue to function normally. However, you cannot migrate your load balancer workloads from the old LBaaS v2 solution to Amphora.
Note
As long as MOSK provides Octavia Amphora load balancing as a technology preview feature, Mirantis cannot guarantee the stability of this solution and does not provide a migration path from Tungsten Fabric load balancing (HAProxy), which is used by default.
To enable Octavia Amphora load balancing:
Assign
openstack-gateway: enabled
labels to the compute nodes in either order.Caution
Assigning the
openstack-gateway: enabled
labels on compute nodes is crucial for the effective operation of Octavia Amphora load balancing within an OpenStack environment. Double-check the labels assignment to guarantee proper configuration.To make Amphora the default provider, specify it in the
OpenStackDeployment
custom resource:spec: features: octavia: default_provider: amphorav2
Verify that the OpenStack Controller has scheduled new Octavia pods that include health manager, worker, and housekeeping pods.
kubectl get pods -n openstack -l 'application=octavia,component in (worker, health_manager, housekeeping)'
Example of output for an environment with two compute nodes:
NAME READY STATUS RESTARTS AGE octavia-health-manager-default-48znl 1/1 Running 0 4h32m octavia-health-manager-default-jk82v 1/1 Running 0 4h34m octavia-housekeeping-7bdf9cbd6c-24vc4 1/1 Running 0 4h34m octavia-housekeeping-7bdf9cbd6c-h9ccv 1/1 Running 0 4h34m octavia-housekeeping-7bdf9cbd6c-rptvv 1/1 Running 0 4h34m octavia-worker-665f84fc7-8kdqd 1/1 Running 0 4h34m octavia-worker-665f84fc7-j6jn9 1/1 Running 0 4h31m octavia-worker-665f84fc7-kqf9t 1/1 Running 0 4h33m
Creating new load balancers¶
The workflow for creating new load balancers with Amphora is identical to the workflow for creating load balancers with Octavia Tungsten Fabric driver for LBaaS v2. You can do it either through the OpenStack Horizon UI or OpenStack CLI.
If you have not defined amphorav2
as default provider in the
OpenStackDeployment
custom resource, you can specify it explicitly
when creating a load balancer using the provider
argument:
openstack loadbalancer create --provider amphorav2