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: 2
This 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