Browse Source

[UG] Services decomposition

Adds the instruction on how to deploy services on dedicated OpenStack nodes

Change-Id: I41093e7cfd38f3be5481d22e6c8ae89fc85fb84e
OlgaGusarenko 2 years ago
parent
commit
575b9a2641

+ 1
- 0
userdocs/fuel-user-guide/configure-environment.rst View File

@@ -26,6 +26,7 @@ This section includes the following topics:
26 26
    configure-environment/add-nodes.rst
27 27
    configure-environment/add-label.rst
28 28
    configure-environment/change-roles.rst
29
+   configure-environment/decompose-services.rst
29 30
    configure-environment/change-hostname-slave-nodes.rst
30 31
    configure-environment/select-bootable-device.rst
31 32
    configure-environment/network-settings.rst

+ 184
- 0
userdocs/fuel-user-guide/configure-environment/decompose-services.rst View File

@@ -0,0 +1,184 @@
1
+.. _decompose_services:
2
+
3
+======================================
4
+Decompose the controller node services
5
+======================================
6
+
7
+You can run different services on dedicated OpenStack nodes depending on
8
+needs of your OpenStack environment. Using the Fuel CLI you can move
9
+controller node services out of the existing controller role into
10
+custom roles and assign these roles to dedicated nodes. This capability
11
+may be helpful while managing highly-loaded OpenStack environments.
12
+
13
+The services available for decomposition are:
14
+
15
+* Neutron (including L3 agents, LBaaS, and others)
16
+* Keystone
17
+* MySQL DB
18
+* RabbitMQ
19
+
20
+**To decompose the controller node services:**
21
+
22
+#. Log in to the Fuel Master node console.
23
+#. Download the controller's role configuration:
24
+
25
+   .. code-block:: console
26
+
27
+      fuel role --release 2 --role controller --file controller.yaml
28
+
29
+   You will get the configuration file with the following content:
30
+
31
+   .. code-block:: yaml
32
+
33
+      name: controller
34
+      meta:
35
+        conflicts:
36
+          - compute
37
+        description: >
38
+          The Controller initiates orchestration activities and provides an
39
+          external API.  Other components like Glance (image storage), Keystone
40
+          (identity management), Horizon (OpenStack dashboard) and Nova-Scheduler
41
+          are installed on the controller as well.
42
+        group: base
43
+        has_primary: true
44
+        limits:
45
+          min: 1
46
+          overrides:
47
+            - condition: settings:neutron_advanced_configuration.neutron_l3_ha.value == true
48
+              message: >
49
+                Neutron L3 HA requires at least 2 Controller nodes to function
50
+                properly.
51
+              min: 2
52
+          recommended: 3
53
+        name: Controller
54
+        public_for_dvr_required: true
55
+        public_ip_required: true
56
+        tags:
57
+          - controller
58
+          - rabbitmq
59
+          - database
60
+          - keystone
61
+          - neutron
62
+        update_required:
63
+          - compute
64
+          - cinder
65
+        weight: 10
66
+      volumes_roles_mapping:
67
+        - allocate_size: min
68
+          id: os
69
+        - allocate_size: min
70
+          id: logs
71
+        - allocate_size: all
72
+          id: image
73
+        - allocate_size: min
74
+          id: mysql
75
+        - allocate_size: min
76
+          id: horizon
77
+
78
+#. In ``controller.yaml``, remove the tag from the ``tags`` section that
79
+   corresponds to the service you need to move to a dedicated node and save
80
+   the changes.
81
+
82
+   For example, remove the ``database`` tag and save the changes. Now, your
83
+   controller role configuration file does not include the ``database`` tag
84
+   in the ``tags`` section, and the ``mysql`` record in
85
+   the ``volumes_roles_mapping`` section:
86
+
87
+   .. code-block:: yaml
88
+      :emphasize-lines: 24-28, 33-41
89
+
90
+      name: controller
91
+      meta:
92
+        conflicts:
93
+          - compute
94
+        description: >
95
+          The Controller initiates orchestration activities and provides an
96
+          external API.  Other components like Glance (image storage), Keystone
97
+          (identity management), Horizon (OpenStack dashboard) and Nova-Scheduler
98
+          are installed on the controller as well.
99
+        group: base
100
+        has_primary: true
101
+        limits:
102
+          min: 1
103
+          overrides:
104
+            - condition: settings:neutron_advanced_configuration.neutron_l3_ha.value == true
105
+              message: >
106
+                Neutron L3 HA requires at least 2 Controller nodes to function
107
+                properly.
108
+              min: 2
109
+          recommended: 3
110
+        name: Controller
111
+        public_for_dvr_required: true
112
+        public_ip_required: true
113
+        tags:
114
+          - controller
115
+          - rabbitmq
116
+          - keystone
117
+          - neutron
118
+        update_required:
119
+          - compute
120
+          - cinder
121
+              weight: 10
122
+      volumes_roles_mapping:
123
+        - allocate_size: min
124
+          id: os
125
+        - allocate_size: min
126
+          id: logs
127
+        - allocate_size: all
128
+          id: image
129
+        - allocate_size: min
130
+          id: horizon
131
+
132
+#. Upload the updated controller role:
133
+
134
+   .. code-block:: console
135
+
136
+      fuel role --release 2 --role controller --update --file controller.yaml
137
+
138
+#. Create a new custom role for the service you need to remove from
139
+   the controller node:
140
+
141
+   #. For example, create and edit ``database.yaml`` specifying the removed
142
+      entries from the controller role configuration:
143
+
144
+      .. code-block:: yaml
145
+
146
+         name: database
147
+         meta:
148
+           name: Database
149
+           description: >
150
+             Separated DB from controller.
151
+           group: base
152
+           conflicts:
153
+             - controller
154
+             - compute
155
+           has_primary: true
156
+           limits:
157
+             min: 1
158
+           update_required:
159
+             - controller
160
+             - database
161
+           tags:
162
+             - database
163
+           weight: 100
164
+         volumes_roles_mapping:
165
+           - allocate_size: min
166
+             id: os
167
+           - allocate_size: min
168
+             id: mysql
169
+
170
+   #. In the Fuel CLI, create the new role based on the ``database.yaml``
171
+      configuration file:
172
+
173
+      .. code-block:: console
174
+
175
+         fuel role --release 2 --create --file database.yaml
176
+
177
+#. Assign the newly created role using the Fuel web UI or CLI as described
178
+   in :ref:`change-roles`.
179
+
180
+#. To apply the changes, deploy your OpenStack environment.
181
+
182
+.. seealso::
183
+
184
+   * :ref:`cli-roles`

Loading…
Cancel
Save