Add operation: Implement HA with a VIP

Add a cloud operation covering the implementation
of HA using the hacluster charm and a virtual IP.

Related-Bug: #1930763
Change-Id: Iac9ba2ac24b5d6234abe295bc5c51f22da89c9b6
This commit is contained in:
Peter Matulis 2021-06-02 18:49:56 -04:00
parent 8fc8356461
commit 24c203a931
2 changed files with 74 additions and 0 deletions

View File

@ -16,3 +16,4 @@ having these operations applied to it.
* :doc:`Start MySQL InnoDB Cluster from a complete outage <ops-start-innodb-from-outage>`
* :doc:`Implement automatic Glance image updates <ops-auto-glance-image-updates>`
* :doc:`Use OpenStack as a backing cloud for Juju <ops-use-openstack-to-back-juju>`
* :doc:`Implement HA with a VIP <ops-implement-ha-with-vip>`

View File

@ -0,0 +1,73 @@
:orphan:
=======================
Implement HA with a VIP
=======================
Preamble
--------
The subordinate `hacluster charm`_ provides high availability for OpenStack
applications that lack native (built-in) HA functionality. The clustering
solution is based on Corosync and Pacemaker.
.. important::
The virtual IP method of implementing HA requires that all units of the
clustered OpenStack application are on the same subnet.
The chosen VIP should also be part of a reserved subnet range that MAAS does
not use for assigning addresses to its nodes.
Procedure
---------
HA can be included during the deployment of the principle application or added
to an existing application.
.. note::
When hacluster is deployed it is normally given an application name that is
based on the principle charm name (i.e. <principle-charm-name>-hacluster).
Deploying an application with HA
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
These commands will deploy a three-node Keystone HA cluster with a VIP of
10.246.114.11. Each node will reside in a container on existing machines 0, 1,
and 2:
.. code-block:: none
juju deploy -n 3 --to lxd:0,lxd:1,lxd:2 --config vip=10.246.114.11 keystone
juju deploy --config cluster_count=3 hacluster keystone-hacluster
juju add-relation keystone-hacluster:ha keystone:ha
Adding HA to an existing application
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
These commands will add two units to an assumed single existing unit to create
a three-node Keystone HA cluster with a VIP of 10.246.114.11:
.. code-block:: none
juju config vip=10.246.114.11 keystone
juju add-unit -n 2 --to lxd:1,lxd:2 keystone
juju deploy --config cluster_count=3 hacluster keystone-hacluster
juju add-relation keystone-hacluster:ha keystone:ha
.. warning::
Adding HA to an existing application will cause a control plane outage for
the given application and any applications that depend on it. New units will
be spawned and the Keystone service catalog will be updated (with the new IP
address). Plan for a maintenance window.
.. note::
Adding HA to Keystone in this way is affected by a known issue (tracked in
bug `LP #1930763`_).
.. LINKS
.. _hacluster charm: https://jaas.ai/hacluster
.. _LP #1930763: https://bugs.launchpad.net/charm-keystone/+bug/1930763