High Availability Guide

Designate supports running all of its components services in “active-active” HA modes.

Some services require some extra setup to ensure that they can work in active-active, and the services are listed below.

designate-api

Needs Access to:

  • AMQP

blockdiag L7 Load Balancer AMQP Servers API Server 1 API Server 2 API Server 3 API Servers

Notes

To run multiple designate-api services, you should run the services behind a load balancer.

When behind the load balancer, you may need to set the following:

[service:api]
api_base_uri = http://<load balancer URI>/
enable_host_header = True

Or the following:

[oslo_middleware]
enable_proxy_headers_parsing = true

And then the load balancer to set appropriate headers (e.g. enable mod_proxy in apache.)

designate-central

Needs Access to:

  • AMQP

  • Database

blockdiag AMQP Servers Database Servers designate-central Server 1 designate-central Server 2 designate-central Server 3 designate-central Servers

Notes

You can run as many designate-central services as needed, as long as they all have access to the AMQP server(s), work will be distributed across all of them.

designate-mdns

Needs Access to:

  • AMQP

  • Database

  • DNS Servers

blockdiag AMQP Servers DNS Servers Database Servers designate-mdns Server 1 designate-mdns Server 2 designate-mdns Server 3 designate-mdns Servers

Notes

You can run as many designate-mdns services as needed, as long as they all have access to the AMQP server(s), work will be distributed across all of them.

designate-worker

Needs Access to:

  • AMQP

  • DNS Servers

blockdiag AMQP Servers DNS Servers designate-worker Server 1 designate-worker Server 2 designate-worker Server 3 designate-worker Servers

Notes

You can run as many designate-worker services as needed, as long as they all have access to the AMQP server(s), work will be distributed across all of them.

designate-producer

Needs Access to:

  • AMQP

  • DLM

blockdiag AMQP Servers DLM Servers designate-producer Server 1 designate-producer Server 2 designate-producer Server 3 designate-producer Servers

Notes

You can run as many designate-producer services as needed, as long as they all have access to the AMQP server(s), and a distributed lock manager, work will be sharded across all the services.

You will need to set a coordination backend_url. This needs to be a DLM that is supported by tooz, that supports group membership. See tooz driver list for available drivers

Warning

Failure to set a backend_url can cause unexpected consequences, and may result in some periodic tasks being ran more than once.

[coordination]
backend_url = kazoo://<zookeeper url>:<zookeeper port>

designate-sink

Needs Access to:

  • AMQP

blockdiag AMQP Servers designate-sink Server 1 designate-sink Server 2 designate-sink Server 3 designate-sink Servers

Notes

You can run as many designate-sink services as needed, as long as they all have access to the AMQP server(s), work will be distributed across all of them.