Update upgrade information in operating-kolla.rst
Added more information here to help when doing upgrades. Change-Id: I9ed4cb172726277f477750a1b34dd0b9f11cf64f
This commit is contained in:
parent
7d679a128a
commit
e6849f467f
@ -4,8 +4,30 @@
|
|||||||
Operating Kolla
|
Operating Kolla
|
||||||
===============
|
===============
|
||||||
|
|
||||||
Upgrading
|
Versioning
|
||||||
~~~~~~~~~
|
~~~~~~~~~~
|
||||||
|
|
||||||
|
Kolla uses the ``x.y.z`` `semver <https://semver.org/>`_ nomenclature for
|
||||||
|
naming versions. Kolla's initial Pike release was ``5.0.0`` and the initial
|
||||||
|
Queens release is ``6.0.0``. The Kolla community commits to release z-stream
|
||||||
|
updates every 45 days that resolve defects in the stable version in use and
|
||||||
|
publish those images to the Docker Hub registry.
|
||||||
|
|
||||||
|
To prevent confusion, the Kolla community recommends using an alpha identifier
|
||||||
|
``x.y.z.a`` where ``a`` represents any customization done on the part of the
|
||||||
|
operator. For example, if an operator intends to modify one of the Docker files
|
||||||
|
or the repos from the originals and build custom images for the Pike version,
|
||||||
|
the operator should start with version 5.0.0.0 and increase alpha for each
|
||||||
|
release. Alpha tag usage is at discretion of the operator. The alpha identifier
|
||||||
|
could be a number as recommended or a string of the operator's choosing.
|
||||||
|
|
||||||
|
To customize the version number uncomment ``openstack_release`` in globals.yml
|
||||||
|
and specify the version number desired. If ``openstack_release`` is not
|
||||||
|
specified, Kolla will deploy or upgrade using the version number information
|
||||||
|
contained in the kolla-ansible package.
|
||||||
|
|
||||||
|
Upgrade procedure
|
||||||
|
~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
Kolla's strategy for upgrades is to never make a mess and to follow consistent
|
Kolla's strategy for upgrades is to never make a mess and to follow consistent
|
||||||
patterns during deployment such that upgrades from one environment to the next
|
patterns during deployment such that upgrades from one environment to the next
|
||||||
@ -14,52 +36,109 @@ are simple to automate.
|
|||||||
Kolla implements a one command operation for upgrading an existing deployment
|
Kolla implements a one command operation for upgrading an existing deployment
|
||||||
consisting of a set of containers and configuration data to a new deployment.
|
consisting of a set of containers and configuration data to a new deployment.
|
||||||
|
|
||||||
Kolla uses the ``x.y.z`` semver nomenclature for naming versions. Kolla's
|
Limitations and Recommendations
|
||||||
Liberty version is ``1.0.0`` and the Mitaka version is ``2.0.0``. The Kolla
|
-------------------------------
|
||||||
community commits to release z-stream updates every 45 days that resolve
|
|
||||||
defects in the stable version in use and publish those images to the Docker Hub
|
|
||||||
registry. To prevent confusion, the Kolla community recommends using an alpha
|
|
||||||
identifier ``x.y.z.a`` where ``a`` represents any customization done on the
|
|
||||||
part of the operator. For example, if an operator intends to modify one of the
|
|
||||||
Docker files or the repos from the originals and build custom images for the
|
|
||||||
Liberty version, the operator should start with version 1.0.0.0 and increase
|
|
||||||
alpha for each release. Alpha tag usage is at discretion of the operator. The
|
|
||||||
alpha identifier could be a number as recommended or a string of the operator's
|
|
||||||
choosing.
|
|
||||||
|
|
||||||
If the alpha identifier is not used, Kolla will deploy or upgrade using the
|
.. note::
|
||||||
version number information contained in the release. To customize the
|
|
||||||
version number uncomment ``openstack_release`` in ``globals.yml`` and specify
|
|
||||||
the version number desired.
|
|
||||||
|
|
||||||
For example, to deploy a custom built ``Liberty`` version built with the
|
Varying degrees of success have been reported with upgrading the libvirt
|
||||||
:command:`kolla-build --tag 1.0.0.0` operation, configure the ``globals.yml``
|
container with a running virtual machine in it. The libvirt upgrade still
|
||||||
file:
|
needs a bit more validation, but the Kolla community feels confident this
|
||||||
|
mechanism can be used with the correct Docker graph driver.
|
||||||
|
|
||||||
.. code-block:: none
|
.. note::
|
||||||
|
|
||||||
openstack_release: 1.0.0.0
|
The Kolla community recommends the btrfs or aufs graph drivers for storing
|
||||||
|
data as sometimes the LVM graph driver loses track of its reference counting
|
||||||
|
and results in an unremovable container.
|
||||||
|
|
||||||
.. end
|
.. note::
|
||||||
|
|
||||||
Then run the following command to deploy:
|
Because of system technical limitations, upgrade of a libvirt container when
|
||||||
|
using software emulation (``virt_type = qemu`` in nova.conf), does not work
|
||||||
|
at all. This is acceptable because KVM is the recommended virtualization
|
||||||
|
driver to use with Nova.
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
|
||||||
|
Please note that when the ``use_preconfigured_databases`` flag is set to
|
||||||
|
``"yes"``, you need to have the ``log_bin_trust_function_creators`` set to
|
||||||
|
``1`` by your database administrator before performing the upgrade.
|
||||||
|
|
||||||
|
Preparation
|
||||||
|
-----------
|
||||||
|
|
||||||
|
While there may be some cases where it is possible to upgrade by skipping this
|
||||||
|
step (i.e. by upgrading only the ``openstack_release`` version) - generally,
|
||||||
|
when looking at a more comprehensive upgrade, the kolla-ansible package itself
|
||||||
|
should be upgraded first. This will include reviewing some of the configuration
|
||||||
|
and inventory files. On the operator/master node, a backup of the ``/etc/kolla``
|
||||||
|
directory may be desirable.
|
||||||
|
|
||||||
|
If upgrading from ``5.0.0`` to ``6.0.0``, upgrade the kolla-ansible package:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
kolla-ansible deploy
|
pip install --upgrade kolla-ansible==6.0.0
|
||||||
|
|
||||||
.. end
|
.. end
|
||||||
|
|
||||||
If using Liberty and a custom alpha number of 0, and upgrading to 1,
|
If this is a minor upgrade, and you do not wish to upgrade kolla-ansible itself,
|
||||||
configure the ``globals.yml`` file:
|
you may skip this step.
|
||||||
|
|
||||||
.. code-block:: none
|
The inventory file for the deployment should be updated, as the newer sample
|
||||||
|
inventory files may have updated layout or other relevant changes.
|
||||||
|
Use the newer ``6.0.0`` one as a starting template, and merge your existing
|
||||||
|
inventory layout into a copy of the one from here::
|
||||||
|
|
||||||
openstack_release: 1.0.0.1
|
/usr/share/kolla-ansible/ansible/inventory/
|
||||||
|
|
||||||
|
In addition the ``6.0.0`` sample configuration files should be taken from::
|
||||||
|
|
||||||
|
# CentOS
|
||||||
|
/usr/share/kolla-ansible/etc_examples/kolla
|
||||||
|
|
||||||
|
# Ubuntu
|
||||||
|
/usr/local/share/kolla-ansible/etc_examples/kolla
|
||||||
|
|
||||||
|
At this stage, files that are still at the ``5.0.0`` version - which need manual
|
||||||
|
updating are:
|
||||||
|
|
||||||
|
- ``/etc/kolla/globals.yml``
|
||||||
|
- ``/etc/kolla/passwords.yml``
|
||||||
|
|
||||||
|
For ``globals.yml`` relevant changes should be merged into a copy of the new
|
||||||
|
template, and then replace the file in ``/etc/kolla`` with the updated version.
|
||||||
|
For ``passwords.yml``, see the ``kolla-mergepwd`` instructions in `Tips and Tricks`.
|
||||||
|
|
||||||
|
For the kolla docker images, the ``openstack_release`` is updated to ``6.0.0``:
|
||||||
|
|
||||||
|
.. code-block:: yaml
|
||||||
|
|
||||||
|
openstack_release: 6.0.0
|
||||||
|
|
||||||
.. end
|
.. end
|
||||||
|
|
||||||
Then run the command to upgrade:
|
Once the kolla release, the inventory file, and the relevant configuration
|
||||||
|
files have been updated in this way, the operator may first want to 'pull'
|
||||||
|
down the images to stage the ``6.0.0`` versions. This can be done safely
|
||||||
|
ahead of time, and does not impact the existing services. (optional)
|
||||||
|
|
||||||
|
Run the command to pull the ``6.0.0`` images for staging:
|
||||||
|
|
||||||
|
.. code-block:: console
|
||||||
|
|
||||||
|
kolla-ansible pull
|
||||||
|
|
||||||
|
.. end
|
||||||
|
|
||||||
|
At a convenient time, the upgrade can now be run (it will complete more
|
||||||
|
quickly if the images have been staged ahead of time).
|
||||||
|
|
||||||
|
Perform the Upgrade
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
To perform the upgrade:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
|
|
||||||
@ -67,26 +146,8 @@ Then run the command to upgrade:
|
|||||||
|
|
||||||
.. end
|
.. end
|
||||||
|
|
||||||
.. note::
|
After this command is complete the containers will have been recreated from the
|
||||||
|
new images.
|
||||||
Varying degrees of success have been reported with upgrading
|
|
||||||
the libvirt container with a running virtual machine in it. The libvirt
|
|
||||||
upgrade still needs a bit more validation, but the Kolla community feels
|
|
||||||
confident this mechanism can be used with the correct Docker graph driver.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
The Kolla community recommends the btrfs or aufs graph drivers for
|
|
||||||
storing data as sometimes the LVM graph driver loses track of its reference
|
|
||||||
counting and results in an unremovable container.
|
|
||||||
|
|
||||||
.. note::
|
|
||||||
|
|
||||||
Because of system technical limitations, upgrade of a libvirt
|
|
||||||
container when using software emulation (``virt_type = qemu`` in
|
|
||||||
``nova.conf`` file), does not work at all. This is acceptable because
|
|
||||||
KVM is the recommended virtualization driver to use with Nova.
|
|
||||||
|
|
||||||
|
|
||||||
Tips and Tricks
|
Tips and Tricks
|
||||||
~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~
|
||||||
|
Loading…
Reference in New Issue
Block a user