OpenStack Overcloud has several services behind its operations that are open source projects, each one with their own purpose and communicate between them within the cloud’s operational architecture.
Overcloud’s core services are computing, networking, identity, block storage and images. From these, it is possible to deploy other services, such as dashboard, telemetry, orchestration, message queue and much more.
To ease an understanding of Openstack Overcloud’s services, see the diagram below illustrating the workflow and the various actions of the services, each one with your defined terminology, when requested by the user to create an instance:
1. Keystone authenticates user data and sends generated token for user X. The CLI requests Keystone the Nova’s endpoint. Keystone posts the endpoint.2. CLI sends a request to Nova to launch a new instance with image A, connected to network B with the token for user X.3. Keystone validates the token and gets access permissions for user X. Keystone confirms and sends back authorization data to Nova.4. Nova requests the image A for user X to Glance Service.5. Glance requests Keystone to validate token for user X. Keystone confirms and sends back authorization data.6. Glance looks up in the database to get image parameters and prepare a JSON response file and sends it back to the Nova compute service.7. Nova requests to Neutron a port on network B for user X.8. Neutron requests Keystone to validate Token for user X. Keystone confirms and sends back authorization data to Neutron.9. Neutron creates a JSON response file and sends it to Nova.10. Nova turns to Cinder requested a volume from a new instance11. Cinder requests Keystone to validate Token for user X. Keystone confirms and sends back authorization data to Cinder.12. Cinder prepares a JSON response file and sends it to Nova.
Finally, Nova has gone through everything to spawn and deliver the instance to the user.
Requirements to Build a Small Cloud
In a small production cloud it is recommended to start with 5 nodes, three controllers in a high availability cluster and two compute node.
Separating services from nodes allows to scale the OpenStack Overcloud resources out. In other words, increasing the cloud’s infrastructure.
What are the functions of each node
Controller nodes are the control center of the cloud where the core services run and key tasks such as handling your cloud environment, with main services as Keystone, Glance, Nova (API), Neutron, Horizon, RabbitMQ and MariaDB. For high availability services include Galera and Pacemaker. It also includes support for Heat, Gnocchi, Aodh, Swift, Ceph and others services.
Compute nodes are where the instances are located. It works with QEMU and KVM hypervisors. Compute nodes must have enough vCPU, memory and disk capacity to perform virtual machine instances and hardware virtualization needed to be enabled. The main services are Nova and Neutron (Open vSwitch). It also includes support for Ceilometer Agent.
For a bigger sized Overcloud production environment, it is recommended to have others dedicated servers as well as storage nodes to Ceph (software defined storage) and Swift (object storage). For further information on clouds larger than small clouds, see Overcloud — Controller Nodes Requirements.
High Level Overcloud Deployment
OpenStack Overcloud deploys services on containers. Red Hat OpenStack Platform 16.x uses Podman as the container engine. Previou release use Docker.
The OpenStack Overcloud deployment process occurs within the Undercloud server, as follows:
- Overcloud image preparation.
- Configure overcloud roles, image, flavor (node size), number of instances, service parameters and network configuration.
- Configure and Deploy with Heat Template.
Heat orchestrate service works with Ironic to catch up hardware inventory and Nova compute service to deploy to the Overcloud environment. Heat uses templates to orchestrate and deploy, as an Application Stack for end-users for example.
See Overcloud Deployment for further information.