Merge "Update Docs to include Hybrid Cluster (r6)"
This commit is contained in:
commit
0ef80bafc8
@ -0,0 +1,36 @@
|
||||
.. _add-taints-to-openstack-node-in-hybrid-cluster-e8b37e8d1b48-r6:
|
||||
|
||||
==============================================
|
||||
Add Taints to OpenStack Node in Hybrid Cluster
|
||||
==============================================
|
||||
|
||||
.. rubric:: |context|
|
||||
|
||||
In a hybrid (Kubernetes and OpenStack) cluster scenario, to prevent end-users'
|
||||
hosted containerized workloads/pods from being scheduled on
|
||||
``openstack-compute-nodes`` a taint that only openstack and platform pods are
|
||||
able to tolerate must be added. Thus, any pod that is not platform or
|
||||
OpenStack specific can be repelled. To achieve this control, the
|
||||
``openstack-compute-node`` taint must be added to all
|
||||
``openstack-compute-nodes`` (i.e. worker nodes or |AIO|-Controller nodes with
|
||||
the ``openstack-compute-node`` label).
|
||||
|
||||
By applying taints, it is possible to separate end users' containerized
|
||||
workloads/pods from OpenStack in a hybrid (Kubernetes and OpenStack) cluster
|
||||
scenario.
|
||||
|
||||
.. rubric:: |proc|
|
||||
|
||||
#. Apply taints.
|
||||
|
||||
This step is needed to prevent end-users' hosted containerized
|
||||
workloads/pods from being scheduled on openstack computes (i.e. worker
|
||||
nodes or |AIO|-Controller nodes with the ``openstack-compute-node`` label).
|
||||
|
||||
Apply this taint on every ``openstack-compute-node`` (i.e. worker nodes
|
||||
or |AIO|-Controller nodes with the ``openstack-compute-node`` label):
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
kubectl taint nodes <kubernetes-node-name> openstack-compute-node:NoSchedule
|
||||
|
@ -0,0 +1,103 @@
|
||||
.. _convert-worker-nodes-0007b1532308:
|
||||
|
||||
====================
|
||||
Convert Worker Nodes
|
||||
====================
|
||||
|
||||
.. rubric:: |context|
|
||||
|
||||
In a hybrid (Kubernetes and OpenStack) cluster scenario you may need to convert
|
||||
worker nodes to/from ``openstack-compute-nodes``.
|
||||
|
||||
.. rubric:: |proc|
|
||||
|
||||
#. Convert a k8s-only worker into a OpenStack compute
|
||||
|
||||
#. Lock the worker host:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
system host-lock <host>
|
||||
|
||||
#. Add the ``openstack-compute-node`` taint, see :ref:`Add Taints to
|
||||
OpenStack Node in Hybrid Cluster
|
||||
<add-taints-to-openstack-node-in-hybrid-cluster-e8b37e8d1b48-r6>`.
|
||||
|
||||
#. Assign OpenStack labels:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
system host-label-assign <host> --overwrite openstack-compute-node=enabled avs=enabled sriov=enabled
|
||||
|
||||
#. Allocate vswitch huge pages:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
system host-memory-modify -1G 1 -f vswitch <host> 0
|
||||
system host-memory-modify -1G 1 -f vswitch <host> 1
|
||||
|
||||
#. Change the class of the data network interface:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
system host-if-modify -c data <host> <if_name_or_uuid>
|
||||
|
||||
.. note::
|
||||
|
||||
If data network interface does not exist yet, refer to |prod-os|
|
||||
documentation on creating it.
|
||||
|
||||
#. Change Kubernetes CPU Manager Policy to allow |VMs| to use application
|
||||
cores:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
system host-label-remove <host> kube-cpu-mgr-policy
|
||||
|
||||
#. Unlock the worker host:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
system host-unlock <host>
|
||||
|
||||
#. Convert a OpenStack compute into a k8s-only worker.
|
||||
|
||||
#. Lock the worker host:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
system host-lock <host>
|
||||
|
||||
#. Remove OpenStack labels:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
system host-label-remove <host> openstack-compute-node avs sriov
|
||||
|
||||
.. note::
|
||||
|
||||
The labels have to be removed, not to have its values changed.
|
||||
|
||||
#. Deallocate vswitch huge pages:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
system host-memory-modify -1G 0 -f vswitch <host> 0
|
||||
system host-memory-modify -1G 0 -f vswitch <host> 1
|
||||
|
||||
#. Change the class of the data network interface:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
system host-if-modify -c none <host> <if_name_or_uuid>
|
||||
|
||||
.. note::
|
||||
|
||||
This change is needed to avoid raising a permanent alarm for the
|
||||
interface without the need to delete it.
|
||||
|
||||
#. Unlock the worker host:
|
||||
|
||||
.. code-block:: none
|
||||
|
||||
system host-unlock <host>
|
@ -0,0 +1,45 @@
|
||||
.. _hybrid-cluster-c7a3134b6f2a:
|
||||
|
||||
==============
|
||||
Hybrid Cluster
|
||||
==============
|
||||
|
||||
A Hybrid Cluster occurs when the hosts with a worker function (|AIO|
|
||||
controllers and worker nodes) are split between two groups, one running
|
||||
|prod-os| for hosting |VM| payloads and the other for hosting containerized
|
||||
payloads.
|
||||
|
||||
The host labels are used to define each worker function on the Hybrid Cluster
|
||||
setup. For example, a standard configuration (2 controllers and 2 computes) can
|
||||
be split into (2 controllers, 1 openstack-compute and 1 kubernetes-worker).
|
||||
|
||||
-----------
|
||||
Limitations
|
||||
-----------
|
||||
|
||||
- Worker function on |AIO| controllers MUST both be either
|
||||
Kubernetes or OpenStack.
|
||||
|
||||
- Hybrid Cluster does not apply to |AIO-SX| or |AIO-DX| setups.
|
||||
|
||||
- A worker must have only one function, either it is OpenStack compute or
|
||||
k8s-only worker, never both at the same time.
|
||||
|
||||
- The ``sriov`` and ``sriovdp`` labels cannot coexist on the same host,
|
||||
in order to prevent the |SRIOV| device plugin from conflicting with the
|
||||
OpenStack |SRIOV| driver.
|
||||
|
||||
- No host will assign |VMs| and application containers to application cores
|
||||
at the same time.
|
||||
|
||||
- Standard Controllers cannot have ``openstack-compute-node`` label;
|
||||
only |AIO| Controllers can have ``openstack-compute-node`` label.
|
||||
|
||||
- Taints must be added to OpenStack compute hosts (i.e. worker nodes or
|
||||
|AIO|-Controller nodes with the ``openstack-compute-node`` label) to
|
||||
prevent
|
||||
end users' hosted containerized workloads/pods from being scheduled on
|
||||
OpenStack compute hosts. See :ref:`Add Taints to OpenStack Node in
|
||||
Hybrid Cluster
|
||||
<add-taints-to-openstack-node-in-hybrid-cluster-e8b37e8d1b48-r6>`.
|
||||
|
@ -16,3 +16,14 @@ StarlingX is independent of deployment configuration.
|
||||
install
|
||||
access
|
||||
uninstall_delete
|
||||
|
||||
--------------
|
||||
Hybrid Cluster
|
||||
--------------
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
hybrid-cluster-c7a3134b6f2a
|
||||
add-taints-to-openstack-node-in-hybrid-cluster-e8b37e8d1b48
|
||||
convert-worker-nodes-0007b1532308
|
||||
|
Loading…
x
Reference in New Issue
Block a user