[UG] Services decomposition
Adds the instruction on how to deploy services on dedicated OpenStack nodes Change-Id: I41093e7cfd38f3be5481d22e6c8ae89fc85fb84e
This commit is contained in:
parent
f39e203603
commit
575b9a2641
|
@ -26,6 +26,7 @@ This section includes the following topics:
|
||||||
configure-environment/add-nodes.rst
|
configure-environment/add-nodes.rst
|
||||||
configure-environment/add-label.rst
|
configure-environment/add-label.rst
|
||||||
configure-environment/change-roles.rst
|
configure-environment/change-roles.rst
|
||||||
|
configure-environment/decompose-services.rst
|
||||||
configure-environment/change-hostname-slave-nodes.rst
|
configure-environment/change-hostname-slave-nodes.rst
|
||||||
configure-environment/select-bootable-device.rst
|
configure-environment/select-bootable-device.rst
|
||||||
configure-environment/network-settings.rst
|
configure-environment/network-settings.rst
|
||||||
|
|
|
@ -0,0 +1,184 @@
|
||||||
|
.. _decompose_services:
|
||||||
|
|
||||||
|
======================================
|
||||||
|
Decompose the controller node services
|
||||||
|
======================================
|
||||||
|
|
||||||
|
You can run different services on dedicated OpenStack nodes depending on
|
||||||
|
needs of your OpenStack environment. Using the Fuel CLI you can move
|
||||||
|
controller node services out of the existing controller role into
|
||||||
|
custom roles and assign these roles to dedicated nodes. This capability
|
||||||
|
may be helpful while managing highly-loaded OpenStack environments.
|
||||||
|
|
||||||
|
The services available for decomposition are:
|
||||||
|
|
||||||
|
* Neutron (including L3 agents, LBaaS, and others)
|
||||||
|
* Keystone
|
||||||
|
* MySQL DB
|
||||||
|
* RabbitMQ
|
||||||
|
|
||||||
|
**To decompose the controller node services:**
|
||||||
|
|
||||||
|
#. Log in to the Fuel Master node console.
|
||||||
|
#. Download the controller's role configuration:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
fuel role --release 2 --role controller --file controller.yaml
|
||||||
|
|
||||||
|
You will get the configuration file with the following content:
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
name: controller
|
||||||
|
meta:
|
||||||
|
conflicts:
|
||||||
|
- compute
|
||||||
|
description: >
|
||||||
|
The Controller initiates orchestration activities and provides an
|
||||||
|
external API. Other components like Glance (image storage), Keystone
|
||||||
|
(identity management), Horizon (OpenStack dashboard) and Nova-Scheduler
|
||||||
|
are installed on the controller as well.
|
||||||
|
group: base
|
||||||
|
has_primary: true
|
||||||
|
limits:
|
||||||
|
min: 1
|
||||||
|
overrides:
|
||||||
|
- condition: settings:neutron_advanced_configuration.neutron_l3_ha.value == true
|
||||||
|
message: >
|
||||||
|
Neutron L3 HA requires at least 2 Controller nodes to function
|
||||||
|
properly.
|
||||||
|
min: 2
|
||||||
|
recommended: 3
|
||||||
|
name: Controller
|
||||||
|
public_for_dvr_required: true
|
||||||
|
public_ip_required: true
|
||||||
|
tags:
|
||||||
|
- controller
|
||||||
|
- rabbitmq
|
||||||
|
- database
|
||||||
|
- keystone
|
||||||
|
- neutron
|
||||||
|
update_required:
|
||||||
|
- compute
|
||||||
|
- cinder
|
||||||
|
weight: 10
|
||||||
|
volumes_roles_mapping:
|
||||||
|
- allocate_size: min
|
||||||
|
id: os
|
||||||
|
- allocate_size: min
|
||||||
|
id: logs
|
||||||
|
- allocate_size: all
|
||||||
|
id: image
|
||||||
|
- allocate_size: min
|
||||||
|
id: mysql
|
||||||
|
- allocate_size: min
|
||||||
|
id: horizon
|
||||||
|
|
||||||
|
#. In ``controller.yaml``, remove the tag from the ``tags`` section that
|
||||||
|
corresponds to the service you need to move to a dedicated node and save
|
||||||
|
the changes.
|
||||||
|
|
||||||
|
For example, remove the ``database`` tag and save the changes. Now, your
|
||||||
|
controller role configuration file does not include the ``database`` tag
|
||||||
|
in the ``tags`` section, and the ``mysql`` record in
|
||||||
|
the ``volumes_roles_mapping`` section:
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
:emphasize-lines: 24-28, 33-41
|
||||||
|
|
||||||
|
name: controller
|
||||||
|
meta:
|
||||||
|
conflicts:
|
||||||
|
- compute
|
||||||
|
description: >
|
||||||
|
The Controller initiates orchestration activities and provides an
|
||||||
|
external API. Other components like Glance (image storage), Keystone
|
||||||
|
(identity management), Horizon (OpenStack dashboard) and Nova-Scheduler
|
||||||
|
are installed on the controller as well.
|
||||||
|
group: base
|
||||||
|
has_primary: true
|
||||||
|
limits:
|
||||||
|
min: 1
|
||||||
|
overrides:
|
||||||
|
- condition: settings:neutron_advanced_configuration.neutron_l3_ha.value == true
|
||||||
|
message: >
|
||||||
|
Neutron L3 HA requires at least 2 Controller nodes to function
|
||||||
|
properly.
|
||||||
|
min: 2
|
||||||
|
recommended: 3
|
||||||
|
name: Controller
|
||||||
|
public_for_dvr_required: true
|
||||||
|
public_ip_required: true
|
||||||
|
tags:
|
||||||
|
- controller
|
||||||
|
- rabbitmq
|
||||||
|
- keystone
|
||||||
|
- neutron
|
||||||
|
update_required:
|
||||||
|
- compute
|
||||||
|
- cinder
|
||||||
|
weight: 10
|
||||||
|
volumes_roles_mapping:
|
||||||
|
- allocate_size: min
|
||||||
|
id: os
|
||||||
|
- allocate_size: min
|
||||||
|
id: logs
|
||||||
|
- allocate_size: all
|
||||||
|
id: image
|
||||||
|
- allocate_size: min
|
||||||
|
id: horizon
|
||||||
|
|
||||||
|
#. Upload the updated controller role:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
fuel role --release 2 --role controller --update --file controller.yaml
|
||||||
|
|
||||||
|
#. Create a new custom role for the service you need to remove from
|
||||||
|
the controller node:
|
||||||
|
|
||||||
|
#. For example, create and edit ``database.yaml`` specifying the removed
|
||||||
|
entries from the controller role configuration:
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
name: database
|
||||||
|
meta:
|
||||||
|
name: Database
|
||||||
|
description: >
|
||||||
|
Separated DB from controller.
|
||||||
|
group: base
|
||||||
|
conflicts:
|
||||||
|
- controller
|
||||||
|
- compute
|
||||||
|
has_primary: true
|
||||||
|
limits:
|
||||||
|
min: 1
|
||||||
|
update_required:
|
||||||
|
- controller
|
||||||
|
- database
|
||||||
|
tags:
|
||||||
|
- database
|
||||||
|
weight: 100
|
||||||
|
volumes_roles_mapping:
|
||||||
|
- allocate_size: min
|
||||||
|
id: os
|
||||||
|
- allocate_size: min
|
||||||
|
id: mysql
|
||||||
|
|
||||||
|
#. In the Fuel CLI, create the new role based on the ``database.yaml``
|
||||||
|
configuration file:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
fuel role --release 2 --create --file database.yaml
|
||||||
|
|
||||||
|
#. Assign the newly created role using the Fuel web UI or CLI as described
|
||||||
|
in :ref:`change-roles`.
|
||||||
|
|
||||||
|
#. To apply the changes, deploy your OpenStack environment.
|
||||||
|
|
||||||
|
.. seealso::
|
||||||
|
|
||||||
|
* :ref:`cli-roles`
|
Loading…
Reference in New Issue