Mastering OpenStack(Second Edition)
上QQ阅读APP看书,第一时间看更新

The cloud controller

The concept of cloud controllers aims to provide central management and control over your OpenStack deployments. We can, for example, consider that the cloud controller is managing all API calls and messaging transactions.

Considering a medium- or large-scale infrastructure, we will need, with no doubt, more than a single node. For an OpenStack cloud operator, controllers can be thought of as service aggregators, where the majority of management services needed to operate OpenStack are running.

Let's see what a cloud controller mainly handles:

  • It presents a gateway for access to cloud management and services consumption
  • It provides the API services in order to make different OpenStack components talk to each other and provides a service interface to the end user
  • It provides mechanisms for highly available integrated services by the means of clustering and load-balancing utilities
  • It provides critical infrastructure services, such as a database and message queue
  • It exposes the persistent storage, which might be backed onto separate storage nodes

Most probably, you have already noticed the main services of the cloud controller in Chapter 1, Designing OpenStack Cloud Architectural Consideration, but we did not take a deep look at why such services should run in the controller node in the first place.

In this chapter, we will examine the cloud controller as a node in detail. The controller node aggregates the most critical services for OpenStack. Let's look at the services on the controller node: