-
Notifications
You must be signed in to change notification settings - Fork 15
Description
The HA architecture already allows running 3 (typically) Ironic instances per cluster. To achieve an even bigger scale, an operator needs to increase the number of control plane nodes. This is because of the Ironic's dependency on host networking and fixed ports.
However, nothing is preventing us from having several Ironic instances per each pod with httpd and dnsmasq. So, imaging we have:
spec:
extraConductors:
count: 2This will produce Ironic pods with httpd, dnsmasq (optionally) and 3 Ironic instances connected via the RPC bus and using the same database. A remote database will be required (not SQLite).
API endpoints
The main instance will still serve it's API on http(s)://provisioning.ip:6385/v1. The secondary instances will be serving on http(s)://provisioning.ip:6385/instance-1/v1 and http(s)://provisioning.ip:6385/instance-2/v1. This is important to avoid reserving even more ports on control plane nodes.
The /instance-*/ part will be handled by the reverse proxy (httpd). Thus, we'll need to enable using a reverse proxy even without HTTPS. Since all instances will have different service_endpoint, they won't be able to share the same /conf volume.
RPC endpoints
Each conductor will use its own RPC port, starting with the default one. In this example, there will be conductors provisioning-ip (on the default port 8089), provisioning-ip:8090 and provisioning-ip:8091.
/kind feature
Metadata
Metadata
Assignees
Labels
Type
Projects
Status