Platform k8s upgrades
Initial draft based on downstream content.
Implemented patchset 1 review comments.
Implemented patchset 2 rewiew comments.
Implemented patchset 3 rewiew comments.
Implemented patchset 4 rewiew comments.
Implemented patchset 5 rewiew comments.
Implemented patchset 6 rewiew comments.
Story: 2008055
Task: 42401
Signed-off-by: Ron Stone <ronald.stone@windriver.com>
Change-Id: I6262018778fae44726985853ec4e01f1abf5b890
Signed-off-by: Ron Stone <ronald.stone@windriver.com>
(cherry picked from commit c782df8892)
			
			
This commit is contained in:
		@@ -7,6 +7,8 @@
 | 
			
		||||
.. |ACL| replace:: :abbr:`ACL (Access Control List)`
 | 
			
		||||
.. |AE| replace:: :abbr:`AE (Aggregated Ethernet)`
 | 
			
		||||
.. |AIO| replace:: :abbr:`AIO (All-In-One)`
 | 
			
		||||
.. |AIO-DX| replace:: :abbr:`AIO-DX (All-In-One Duplex)`
 | 
			
		||||
.. |AIO-SX| replace:: :abbr:`AIO-SX (All-In-One Simplex)`
 | 
			
		||||
.. |AVP| replace:: :abbr:`AVP (Accelerated Virtual Port)`
 | 
			
		||||
.. |AVPs| replace:: :abbr:`AVPs (Accelerated Virtual Ports)`
 | 
			
		||||
.. |AWS| replace:: :abbr:`AWS (Amazon Web Services)`
 | 
			
		||||
 
 | 
			
		||||
@@ -1,11 +1,26 @@
 | 
			
		||||
=======
 | 
			
		||||
Updates
 | 
			
		||||
=======
 | 
			
		||||
====================
 | 
			
		||||
Updates and Upgrades
 | 
			
		||||
====================
 | 
			
		||||
 | 
			
		||||
----------
 | 
			
		||||
Openstack
 | 
			
		||||
Kubernetes
 | 
			
		||||
----------
 | 
			
		||||
 | 
			
		||||
.. check what put here
 | 
			
		||||
Kubernetes version upgrade cloud orchestration allows the Kubernetes version on
 | 
			
		||||
all hosts of an entire |prod-long| cloud to be updated with a single operation.
 | 
			
		||||
 | 
			
		||||
.. toctree::
 | 
			
		||||
   :maxdepth: 2
 | 
			
		||||
 | 
			
		||||
   kubernetes/index
 | 
			
		||||
 | 
			
		||||
---------
 | 
			
		||||
Openstack
 | 
			
		||||
---------
 | 
			
		||||
 | 
			
		||||
The system application-update -n |prefix|-openstack -v <new-app-version>
 | 
			
		||||
command is used for corrective content \(bug fixes\) -type updates to the
 | 
			
		||||
running containerized openstack application.
 | 
			
		||||
 | 
			
		||||
.. toctree::
 | 
			
		||||
   :maxdepth: 2
 | 
			
		||||
 
 | 
			
		||||
@@ -0,0 +1,51 @@
 | 
			
		||||
 | 
			
		||||
.. xkr1590157116928
 | 
			
		||||
.. _about-kubernetes-orchestrated-upgrades:
 | 
			
		||||
 | 
			
		||||
====================================================
 | 
			
		||||
About Kubernetes Version Upgrade Cloud Orchestration
 | 
			
		||||
====================================================
 | 
			
		||||
 | 
			
		||||
Kubernetes version upgrade cloud orchestration allows the Kubernetes version on
 | 
			
		||||
all hosts of an entire |prod-long| cloud to be updated with a single operation.
 | 
			
		||||
 | 
			
		||||
You can configure and run Kubernetes version upgrade cloud orchestration using
 | 
			
		||||
the CLI, or the stx-nfv VIM REST API.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.. _xkr1590157116928-section-phk-xls-tlb:
 | 
			
		||||
 | 
			
		||||
-----------------------------------------------------------
 | 
			
		||||
Kubernetes Version Upgrade Cloud Orchestration Requirements
 | 
			
		||||
-----------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
Kubernetes version upgrade orchestration can only be done on a system that
 | 
			
		||||
meets the following conditions:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.. _xkr1590157116928-ul-frz-yls-tlb:
 | 
			
		||||
 | 
			
		||||
-   The system is clear of alarms \(with the exception of alarms for locked
 | 
			
		||||
    hosts, stopped instances, and Kubernetes version upgrade cloud
 | 
			
		||||
    orchestration in progress\).
 | 
			
		||||
 | 
			
		||||
    .. note::
 | 
			
		||||
        When configuring Kubernetes version upgrade cloud orchestration, you
 | 
			
		||||
        have the option to ignore alarms that are not management-affecting
 | 
			
		||||
        severity. For more information, see :ref:`Kubernetes Version Upgrade
 | 
			
		||||
        Cloud Orchestration <configuring-kubernetes-update-orchestration>`.
 | 
			
		||||
 | 
			
		||||
-   There are unlocked-enabled worker function hosts in the system that
 | 
			
		||||
    requires Kubernetes Version Upgrade Cloud Orchestration. The *Kubernetes
 | 
			
		||||
    Upgrade Orchestration Strategy* creation step will fail if there are no
 | 
			
		||||
    qualified hosts detected.
 | 
			
		||||
 | 
			
		||||
    A Kubernetes version upgrade is a reboot required operation. Therefore, in
 | 
			
		||||
    systems that have the |prefix|-openstack application applied with running
 | 
			
		||||
    instances, if the migrate option is selected there must be spare
 | 
			
		||||
    openstack-compute \(worker\) capacity to move instances off the
 | 
			
		||||
    openstack-compute \(worker\) host\(s\) being upgraded.
 | 
			
		||||
 | 
			
		||||
    .. note::
 | 
			
		||||
        Administrative controller ``swact`` operations should be avoided during
 | 
			
		||||
        Kubernetes version upgrade orchestration.
 | 
			
		||||
@@ -0,0 +1,354 @@
 | 
			
		||||
 | 
			
		||||
.. noc1590162360081
 | 
			
		||||
.. _configuring-kubernetes-update-orchestration:
 | 
			
		||||
 | 
			
		||||
==============================================
 | 
			
		||||
Kubernetes Version Upgrade Cloud Orchestration
 | 
			
		||||
==============================================
 | 
			
		||||
 | 
			
		||||
You can configure *Kubernetes Version Upgrade Orchestration Strategy* using the
 | 
			
		||||
:command:`sw-manager` CLI.
 | 
			
		||||
 | 
			
		||||
.. note::
 | 
			
		||||
    You require administrator privileges to use :command:`sw-manager`. You must
 | 
			
		||||
    log in to the active controller as **user sysadmin** and source the script
 | 
			
		||||
    by using the command, source /etc/platform/openrc to obtain administrator
 | 
			
		||||
    privileges. Do not use :command:`sudo`.
 | 
			
		||||
 | 
			
		||||
.. note::
 | 
			
		||||
    Management-affecting alarms cannot be ignored using relaxed alarm rules
 | 
			
		||||
    during an orchestrated Kubernetes version upgrade operation. For a list of
 | 
			
		||||
    management-affecting alarms, see |fault-doc|: :ref:`Alarm Messages
 | 
			
		||||
    <100-series-alarm-messages>`. To display management-affecting active
 | 
			
		||||
    alarms, use the following command:
 | 
			
		||||
 | 
			
		||||
    .. code-block:: none
 | 
			
		||||
 | 
			
		||||
        ~(keystone_admin)$ fm alarm-list --mgmt_affecting
 | 
			
		||||
 | 
			
		||||
During an orchestrated Kubernetes version upgrade operation, the following
 | 
			
		||||
alarms are ignored even when the default strict restrictions are selected:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.. _noc1590162360081-ul-vhg-jxs-tlb:
 | 
			
		||||
 | 
			
		||||
- 100.103: Memory threshold exceeded.
 | 
			
		||||
 | 
			
		||||
- 200.001: Locked host.
 | 
			
		||||
 | 
			
		||||
- 280.001: Subcloud resource off-line.
 | 
			
		||||
 | 
			
		||||
- 280.002: Subcloud resource out-of-sync.
 | 
			
		||||
 | 
			
		||||
- 700.004: |VM| stopped.
 | 
			
		||||
 | 
			
		||||
- 750.006: Configuration change requires reapply of cert-manager.
 | 
			
		||||
 | 
			
		||||
- 900.001: Patch in progress.
 | 
			
		||||
 | 
			
		||||
- 900.007: Kube upgrade in progress.
 | 
			
		||||
 | 
			
		||||
- 900.401: kube-upgrade-auto-apply-inprogress.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
You can use ``help`` for the overall commands and also for each sub-command.
 | 
			
		||||
For example:
 | 
			
		||||
 | 
			
		||||
.. code-block:: none
 | 
			
		||||
 | 
			
		||||
    ~(keystone_admin)$ sw-manager kube-upgrade-strategy –help
 | 
			
		||||
    usage: sw-manager kube-upgrade-strategy [-h]  ...
 | 
			
		||||
    optional arguments:
 | 
			
		||||
      -h, --help  show this help message and exit
 | 
			
		||||
    Kubernetes Update Commands:
 | 
			
		||||
        create    Create a strategy
 | 
			
		||||
        delete    Delete a strategy
 | 
			
		||||
        apply     Apply a strategy
 | 
			
		||||
        abort     Abort a strategy
 | 
			
		||||
        show      Show a strategy
 | 
			
		||||
 | 
			
		||||
.. rubric:: |prereq|
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.. _noc1590162360081-ul-ls2-pxs-tlb:
 | 
			
		||||
 | 
			
		||||
-   Hosts that need to be upgraded must be in the ``unlocked-enabled`` state.
 | 
			
		||||
 | 
			
		||||
.. only:: partner
 | 
			
		||||
 | 
			
		||||
   .. include:: ../../_includes/configuring-kubernetes-update-orchestration.rest
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.. rubric:: |proc|
 | 
			
		||||
 | 
			
		||||
#. List available upgrades.
 | 
			
		||||
 | 
			
		||||
   .. code-block: none
 | 
			
		||||
 | 
			
		||||
      ~(keystone_admin)$ system kube-version-list
 | 
			
		||||
      +-----------------+--------+-----------+
 | 
			
		||||
      | version         | target | state     |
 | 
			
		||||
      +-----------------+--------+-----------+
 | 
			
		||||
      | v1.18.1         | True   | active    |
 | 
			
		||||
      | v1.18.1-upgrade | False  | available |
 | 
			
		||||
      +-----------------+--------+-----------+
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#.  Create the strategy.
 | 
			
		||||
 | 
			
		||||
    The *Kubernetes Version Upgrade Orchestration Strategy* :command:`create`
 | 
			
		||||
    command creates a series of stages with steps that apply the Kubernetes
 | 
			
		||||
    version upgrade.
 | 
			
		||||
 | 
			
		||||
    Kubernetes Version upgrade requires a reboot. Therefore, the created strategy
 | 
			
		||||
    includes steps that automatically lock and unlock the host to bring the new
 | 
			
		||||
    image function into service.
 | 
			
		||||
 | 
			
		||||
    .. code-block:: none
 | 
			
		||||
 | 
			
		||||
        ~(keystone_admin)$ sw-manager kube-upgrade-strategy create --to-version v1.18.1-upgrade
 | 
			
		||||
        Strategy Kubernetes Upgrade Strategy:
 | 
			
		||||
          strategy-uuid:                          f7585178-cea6-4d2f-bda0-e0972145ebcf
 | 
			
		||||
          controller-apply-type:                  serial
 | 
			
		||||
          storage-apply-type:                     ignore
 | 
			
		||||
          worker-apply-type:                      serial
 | 
			
		||||
          default-instance-action:                migrate
 | 
			
		||||
          alarm-restrictions:                     strict
 | 
			
		||||
          current-phase:                          build
 | 
			
		||||
          current-phase-completion:               0%
 | 
			
		||||
          state:                                  building
 | 
			
		||||
          inprogress:                             true
 | 
			
		||||
 | 
			
		||||
    where:
 | 
			
		||||
 | 
			
		||||
    ``--to-version``
 | 
			
		||||
       The version of Kubernetes to upgrade to. For example,
 | 
			
		||||
       ``v1.18.1-upgrade``. This argument is required.
 | 
			
		||||
 | 
			
		||||
    ``--controller-apply-type`` and ``--storage-apply-type``
 | 
			
		||||
       These options cannot be changed from ``serial`` because Kubernetes
 | 
			
		||||
       upgrade concurrency is only supported for worker hosts.
 | 
			
		||||
 | 
			
		||||
       .. note::
 | 
			
		||||
          Kubernetes version upgrade is currently only supported for hosts with
 | 
			
		||||
          worker function. Any attempt to modify the controller or storage
 | 
			
		||||
          apply type is rejected.
 | 
			
		||||
 | 
			
		||||
    ``--worker-apply-type``
 | 
			
		||||
       This option specifies the host concurrency of the Kubernetes version
 | 
			
		||||
       upgrade strategy:
 | 
			
		||||
 | 
			
		||||
       -   serial \(default\): worker hosts will be patched one at a time
 | 
			
		||||
 | 
			
		||||
       -   parallel: worker hosts will be upgraded in parallel
 | 
			
		||||
 | 
			
		||||
           -   At most, ``parallel`` will be upgraded at the same time
 | 
			
		||||
 | 
			
		||||
           -   At most, half of the hosts in a host aggregate will be upgraded
 | 
			
		||||
               at the same time
 | 
			
		||||
 | 
			
		||||
       -   ignore: worker hosts will not be upgraded; strategy create will fail
 | 
			
		||||
 | 
			
		||||
       Worker hosts with no instances are upgraded before worker hosts with
 | 
			
		||||
       instances.
 | 
			
		||||
 | 
			
		||||
    ``--max-parallel-worker-hosts``
 | 
			
		||||
       This option applies to the parallel worker apply type selection to
 | 
			
		||||
       specify the maximum worker hosts to upgrade in parallel \(minimum: 2,
 | 
			
		||||
       maximum: 10\).
 | 
			
		||||
 | 
			
		||||
    ``–instance-action``
 | 
			
		||||
       This option only has significance when the |prefix|-openstack
 | 
			
		||||
       application is loaded and there are instances running on worker hosts.
 | 
			
		||||
       It specifies how the strategy deals with worker host instances over the
 | 
			
		||||
       strategy execution.
 | 
			
		||||
 | 
			
		||||
    ``stop-start`` \(default\)
 | 
			
		||||
       Instances will be stopped before the host lock operation following the
 | 
			
		||||
       upgrade and then started again following the host unlock.
 | 
			
		||||
 | 
			
		||||
       .. warning::
 | 
			
		||||
           Using the ``stop-start`` option will result in an outage for each
 | 
			
		||||
           instance, as it is stopped while the worker host is locked/unlocked.
 | 
			
		||||
           In order to ensure this does not impact service, instances MUST be
 | 
			
		||||
           grouped into anti-affinity \(or anti-affinity best effort\) server
 | 
			
		||||
           groups, which will ensure that only a single instance in each server
 | 
			
		||||
           group is stopped at a time.
 | 
			
		||||
 | 
			
		||||
    ``migrate``
 | 
			
		||||
       Instances will be migrated off a host before it is patched \(this
 | 
			
		||||
       applies to reboot patching only\).
 | 
			
		||||
 | 
			
		||||
    ``--alarm-restrictions``
 | 
			
		||||
       This option sets how the how the Kubernetes version upgrade
 | 
			
		||||
       orchestration behaves when alarms are present.
 | 
			
		||||
 | 
			
		||||
       To display management-affecting active alarms, use the following
 | 
			
		||||
       command:
 | 
			
		||||
 | 
			
		||||
       .. code-block:: none
 | 
			
		||||
 | 
			
		||||
           ~(keystone_admin)$ fm alarm-list --mgmt_affecting
 | 
			
		||||
 | 
			
		||||
    ``strict`` \(default\)
 | 
			
		||||
       The default strict option will result in patch orchestration failing if
 | 
			
		||||
       there are any alarms present in the system \(except for a small list of
 | 
			
		||||
       alarms\).
 | 
			
		||||
 | 
			
		||||
    ``relaxed``
 | 
			
		||||
       This option allows orchestration to proceed if alarms are present, as
 | 
			
		||||
       long as none of these alarms are management affecting.
 | 
			
		||||
 | 
			
		||||
    .. code-block:: none
 | 
			
		||||
 | 
			
		||||
       ~(keystone_admin)]$ sw-manager kube-upgrade-strategy create --help
 | 
			
		||||
       usage:sw-manager kube-upgrade-strategy  [-h]
 | 
			
		||||
                                                --to-version <kubernetesVersion>
 | 
			
		||||
                                                [--controller-apply-type {ignore}]
 | 
			
		||||
                                                [--storage-apply-type {ignore}]
 | 
			
		||||
                                                [--worker-apply-type
 | 
			
		||||
                                                {serial,parallel,ignore}]
 | 
			
		||||
                                                [--max-parallel-worker-hosts
 | 
			
		||||
                                                {2,3,4,5,6,7,8,9,10}]
 | 
			
		||||
                                                [--instance-action {migrate,stop-start}]
 | 
			
		||||
                                                [--alarm-restrictions {strict,relaxed}]
 | 
			
		||||
 | 
			
		||||
       optional arguments:
 | 
			
		||||
         -h, --help            show this help message and exit
 | 
			
		||||
         --controller-apply-type {serial,ignore}
 | 
			
		||||
                            defaults to serial
 | 
			
		||||
         --storage-apply-type {serial,ignore}
 | 
			
		||||
                            defaults to serial
 | 
			
		||||
         --worker-apply-type {serial,parallel,ignore}
 | 
			
		||||
                            defaults to serial
 | 
			
		||||
         --max-parallel-worker-hosts {2,3,4,5,6,7,8,9,10}
 | 
			
		||||
                            maximum worker hosts to update in parallel
 | 
			
		||||
         --instance-action {migrate,stop-start}
 | 
			
		||||
                            defaults to stop-start
 | 
			
		||||
         --alarm-restrictions {strict,relaxed}
 | 
			
		||||
                            defaults to strict
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#.  Optional: Display the strategy in summary, if required. The Kubernetes
 | 
			
		||||
    upgrade strategy :command:`show` command displays the strategy in a summary.
 | 
			
		||||
 | 
			
		||||
    .. code-block:: none
 | 
			
		||||
 | 
			
		||||
        ~(keystone_admin)$ sw-manager kube-upgrade-strategy show
 | 
			
		||||
          Strategy Kubernetes Upgrade Strategy:
 | 
			
		||||
          strategy-uuid:                          f7585178-cea6-4d2f-bda0-e0972145ebcf
 | 
			
		||||
          controller-apply-type:                  serial
 | 
			
		||||
          storage-apply-type:                     ignore
 | 
			
		||||
          worker-apply-type:                      serial
 | 
			
		||||
          default-instance-action:                migrate
 | 
			
		||||
          alarm-restrictions:                     strict
 | 
			
		||||
          current-phase:                          build
 | 
			
		||||
          current-phase-completion:               100%
 | 
			
		||||
          state:                                  ready-to-apply
 | 
			
		||||
          build-result:                           success
 | 
			
		||||
          build-reason:
 | 
			
		||||
 | 
			
		||||
    The :command:`show` strategy subcommand displays a summary of the current
 | 
			
		||||
    state of the strategy. A complete view of the strategy can be shown using
 | 
			
		||||
    the ``--details`` option.
 | 
			
		||||
 | 
			
		||||
    The strategy steps and stages are displayed using the ``--details`` option.
 | 
			
		||||
 | 
			
		||||
#.  Apply the strategy.
 | 
			
		||||
 | 
			
		||||
    *Kubernetes Version Upgrade Orchestration Strategy* :command:`apply` command
 | 
			
		||||
    executes the strategy stages and steps consecutively until the Kubernetes
 | 
			
		||||
    upgrade on all the hosts in the strategy is complete.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    -   Use the ``-stage-id`` option to specify a specific stage to apply; one
 | 
			
		||||
        at a time.
 | 
			
		||||
 | 
			
		||||
        .. note::
 | 
			
		||||
            When applying a single stage, only the next stage will be applied;
 | 
			
		||||
            you cannot skip stages.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    .. code-block:: none
 | 
			
		||||
 | 
			
		||||
        ~(keystone_admin)$ sw-manager kube-upgrade-strategy apply
 | 
			
		||||
        Strategy Kubernetes upgrade Strategy:
 | 
			
		||||
          strategy-uuid:                          3e43c018-9c75-4ba8-a276-472c3bcbb268
 | 
			
		||||
          controller-apply-type:                  ignore
 | 
			
		||||
          storage-apply-type:                     ignore
 | 
			
		||||
          worker-apply-type:                      serial
 | 
			
		||||
          default-instance-action:                stop-start
 | 
			
		||||
          alarm-restrictions:                     strict
 | 
			
		||||
          current-phase:                          apply
 | 
			
		||||
          current-phase-completion:               0%
 | 
			
		||||
          state:                                  applying
 | 
			
		||||
          inprogress:                             true
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    -   Use the :command:`kube-upgrade-show` command to monitor Kubernetes
 | 
			
		||||
        upgrade state and percentage completion.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    .. code-block:: none
 | 
			
		||||
 | 
			
		||||
        ~(keystone_admin)$ system kube-upgrade-show
 | 
			
		||||
        +--------------+--------------------------------------+
 | 
			
		||||
        | Property     | Value                                |
 | 
			
		||||
        +--------------+--------------------------------------+
 | 
			
		||||
        | uuid         | 3d2da123-bff4-4b3a-a64a-b320c3b498cc |
 | 
			
		||||
        | from_version | v1.18.1                              |
 | 
			
		||||
        | to_version   | v1.18.1-upgrade                      |
 | 
			
		||||
        | state        | downloading-images                   |
 | 
			
		||||
        | created_at   | 2021-02-23T00:08:24.579257+00:00     |
 | 
			
		||||
        | updated_at   | 2021-02-23T00:09:35.413307+00:00     |
 | 
			
		||||
        +--------------+--------------------------------------+
 | 
			
		||||
 | 
			
		||||
    You will see the ``state`` property transition through values such as
 | 
			
		||||
    ``downloading-images``, ``downloaded-images``, ``upgrading-first-master``,
 | 
			
		||||
    ``upgraded-first-master``, etc.
 | 
			
		||||
 | 
			
		||||
#.  Optional: Abort the strategy, if required. This is only used to stop, and
 | 
			
		||||
    abort the entire strategy.
 | 
			
		||||
 | 
			
		||||
    The Kubernetes version upgrade strategy :command:`abort` command can be
 | 
			
		||||
    used to abort the Kubernetes version upgrade strategy after the current
 | 
			
		||||
    step of the currently applying stage is completed.
 | 
			
		||||
 | 
			
		||||
#.  Confirm that the upgrade has completed successfully.
 | 
			
		||||
 | 
			
		||||
    .. code-block:: none
 | 
			
		||||
 | 
			
		||||
       ~(keystone_admin)$ system kube-upgrade-show
 | 
			
		||||
       +--------------+--------------------------------------+
 | 
			
		||||
       | Property     | Value                                |
 | 
			
		||||
       +--------------+--------------------------------------+
 | 
			
		||||
       | uuid         | 426d7e11-2de2-40ba-b482-ed3691625383 |
 | 
			
		||||
       | from_version | v1.18.1                              |
 | 
			
		||||
       | to_version   | v1.18.1-upgrade                      |
 | 
			
		||||
       | state        | upgrade-complete                     |
 | 
			
		||||
       | created_at   | 2021-04-12T17:58:36.492523+00:00     |
 | 
			
		||||
       | updated_at   | 2021-04-12T18:49:11.673259+00:00     |
 | 
			
		||||
       +--------------+--------------------------------------+
 | 
			
		||||
 | 
			
		||||
       ~(keystone_admin)$ system kube-version-list
 | 
			
		||||
       +-----------------+--------+-----------+
 | 
			
		||||
       | version         | target | state     |
 | 
			
		||||
       +-----------------+--------+-----------+
 | 
			
		||||
       | v1.18.1         | False  | available |
 | 
			
		||||
       | v1.18.1-upgrade | True   | active    |
 | 
			
		||||
       +-----------------+--------+-----------+
 | 
			
		||||
 | 
			
		||||
#.  Delete the strategy.
 | 
			
		||||
 | 
			
		||||
    .. note::
 | 
			
		||||
        After the *Kubernetes Version Upgrade Orchestration Strategy* has been
 | 
			
		||||
        applied \(or aborted\) it must be deleted before another Kubernetes
 | 
			
		||||
        version upgrade strategy can be created. If a Kubernetes version
 | 
			
		||||
        upgrade strategy application fails, you must address the issue that
 | 
			
		||||
        caused the failure, then delete and re-create the strategy before
 | 
			
		||||
        attempting to apply it again.
 | 
			
		||||
 | 
			
		||||
    .. code-block:: none
 | 
			
		||||
 | 
			
		||||
        ~(keystone_admin)$ sw-manager kube-upgrade-strategy delete
 | 
			
		||||
        Strategy deleted.
 | 
			
		||||
@@ -0,0 +1,125 @@
 | 
			
		||||
 | 
			
		||||
.. jkf1590184623714
 | 
			
		||||
.. _handling-kubernetes-update-orchestration-failures:
 | 
			
		||||
 | 
			
		||||
========================================================
 | 
			
		||||
Handle Kubernetes Version Upgrade Orchestration Failures
 | 
			
		||||
========================================================
 | 
			
		||||
 | 
			
		||||
The creation or application of a strategy could fail for any of the listed
 | 
			
		||||
reasons described in this section. Follow the suggested actions in each case to
 | 
			
		||||
resolve the issue.
 | 
			
		||||
 | 
			
		||||
.. _jkf1590184623714-section-fhk-nnq-5lb:
 | 
			
		||||
 | 
			
		||||
-------------------------
 | 
			
		||||
Strategy creation failure
 | 
			
		||||
-------------------------
 | 
			
		||||
 | 
			
		||||
.. _jkf1590184623714-ul-fvs-vnq-5lb:
 | 
			
		||||
 | 
			
		||||
-   **Reason**: build failed with no reason.
 | 
			
		||||
 | 
			
		||||
    -   **Action**:
 | 
			
		||||
 | 
			
		||||
        -   Verify that the ``--worker-apply-type`` was not set to ``ignore``.
 | 
			
		||||
 | 
			
		||||
        -   Check recent logs added to /var/log/nfv-vim.log.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
-   **Reason**: alarms from platform are present.
 | 
			
		||||
 | 
			
		||||
    -   **Action**:
 | 
			
		||||
 | 
			
		||||
        -   Query for management affecting alarms and take actions to clear
 | 
			
		||||
            them.
 | 
			
		||||
 | 
			
		||||
            .. code-block:: none
 | 
			
		||||
 | 
			
		||||
                ~(keystone_admin)$ fm alarm-list --mgmt_affecting
 | 
			
		||||
 | 
			
		||||
        -   If there are no management affecting alarms present, take actions
 | 
			
		||||
            to clear other reported alarms or try creating the strategy with
 | 
			
		||||
            the ``relaxed`` alarms restrictions option ``--alarm-restrictions
 | 
			
		||||
            relaxed``.
 | 
			
		||||
 | 
			
		||||
-   **Reason**: no Kubernetes version upgrade required.
 | 
			
		||||
 | 
			
		||||
    -   **Action**:
 | 
			
		||||
 | 
			
		||||
        -   Verify that the Kubernetes patches have been uploaded and applied.
 | 
			
		||||
            Verify the version of Kubernetes on the hosts by executing "system
 | 
			
		||||
            kube-host-upgrade-list.
 | 
			
		||||
 | 
			
		||||
            .. note::
 | 
			
		||||
               If the strategy create failed, first you must resolve it. You
 | 
			
		||||
               must delete the failed strategy before you create another
 | 
			
		||||
               strategy.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.. _jkf1590184623714-section-ppt-gpq-5lb:
 | 
			
		||||
 | 
			
		||||
----------------------
 | 
			
		||||
Strategy Apply Failure
 | 
			
		||||
----------------------
 | 
			
		||||
 | 
			
		||||
.. _jkf1590184623714-ul-rdf-4pq-5lb:
 | 
			
		||||
 | 
			
		||||
-   **Reason**: alarms from platform are present.
 | 
			
		||||
 | 
			
		||||
    -   **Action**: suggests that an alarm has been raised since the creation
 | 
			
		||||
        of the strategy. Address the cause of the new alarm, delete the
 | 
			
		||||
        strategy and try creating and applying a new strategy.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
-   **Reason**: unable to migrate instances.
 | 
			
		||||
 | 
			
		||||
    -   **Action**: See :ref:`Kubernetes Version Upgrade Operations Requiring
 | 
			
		||||
        Manual Migration
 | 
			
		||||
        <kubernetes-update-operations-requiring-manual-migration>` for steps to
 | 
			
		||||
        resolve migration issues.
 | 
			
		||||
 | 
			
		||||
-   **Reason**: Kubernetes version upgrade failed. Suggests that the Kubernetes
 | 
			
		||||
    upgrade for the specified host has failed.
 | 
			
		||||
 | 
			
		||||
    .. only:: starlingx
 | 
			
		||||
 | 
			
		||||
        -   **Action**: Consult the `StarlingX community
 | 
			
		||||
            <https://www.starlingx.io/community/>`_.
 | 
			
		||||
 | 
			
		||||
    .. only:: partner
 | 
			
		||||
 | 
			
		||||
        .. include:: ../../_includes/handling-kubernetes-update-orchestration-failures.rest
 | 
			
		||||
 | 
			
		||||
-   **Reason**: lock host failed.
 | 
			
		||||
 | 
			
		||||
    -   **Action**:
 | 
			
		||||
 | 
			
		||||
        -   Investigate the /var/log/sysinv.log, and /var/log/nfv-vim.log
 | 
			
		||||
            files.
 | 
			
		||||
 | 
			
		||||
        -   Address the underlying issue.
 | 
			
		||||
 | 
			
		||||
        -   Manually lock and unlock the host.
 | 
			
		||||
 | 
			
		||||
        -   Try recreating and re-applying the Kubernetes version upgrade
 | 
			
		||||
            strategy to automatically finish the upgrade process.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
-   **Reason**: unlock host failed.
 | 
			
		||||
 | 
			
		||||
    -   **Action**:
 | 
			
		||||
 | 
			
		||||
        -   Investigate /var/log/mtcAgent.log file for cause logs files.
 | 
			
		||||
 | 
			
		||||
        -   Address the underlying issue.
 | 
			
		||||
 | 
			
		||||
        -   Manually lock and unlock the host to recover.
 | 
			
		||||
 | 
			
		||||
        -   Try recreating and re-applying the Kubernetes version upgrade
 | 
			
		||||
            strategy to automatically finish the upgrade process.
 | 
			
		||||
 | 
			
		||||
.. note::
 | 
			
		||||
    If the strategy :command:`apply` fails, you must resolve the
 | 
			
		||||
    strategy:command:`apply` failure, and delete the failed strategy before
 | 
			
		||||
    trying to create and apply another strategy.
 | 
			
		||||
							
								
								
									
										29
									
								
								doc/source/updates/kubernetes/index.rst
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										29
									
								
								doc/source/updates/kubernetes/index.rst
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,29 @@
 | 
			
		||||
 | 
			
		||||
==========
 | 
			
		||||
Kubernetes
 | 
			
		||||
==========
 | 
			
		||||
 | 
			
		||||
---------------------------------
 | 
			
		||||
Manual Kubernetes Version Upgrade
 | 
			
		||||
---------------------------------
 | 
			
		||||
 | 
			
		||||
.. toctree::
 | 
			
		||||
   :maxdepth: 1
 | 
			
		||||
   :caption: Contents:
 | 
			
		||||
 | 
			
		||||
   manual-kubernetes-components-upgrade
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
----------------------------------------------
 | 
			
		||||
Kubernetes Version Upgrade Cloud Orchestration
 | 
			
		||||
----------------------------------------------
 | 
			
		||||
 | 
			
		||||
.. toctree::
 | 
			
		||||
   :maxdepth: 1
 | 
			
		||||
   :caption: Contents:
 | 
			
		||||
 | 
			
		||||
   about-kubernetes-orchestrated-upgrades
 | 
			
		||||
   the-kubernetes-update-orchestration-process
 | 
			
		||||
   configuring-kubernetes-update-orchestration
 | 
			
		||||
   handling-kubernetes-update-orchestration-failures
 | 
			
		||||
 | 
			
		||||
@@ -0,0 +1,381 @@
 | 
			
		||||
 | 
			
		||||
.. bfd1591638638205
 | 
			
		||||
.. _manual-kubernetes-components-upgrade:
 | 
			
		||||
 | 
			
		||||
===========================
 | 
			
		||||
Kubernetes Version Upgrade
 | 
			
		||||
===========================
 | 
			
		||||
 | 
			
		||||
You can upgrade the Kubernetes version on a running system from one
 | 
			
		||||
supported version to another.
 | 
			
		||||
 | 
			
		||||
.. rubric:: |context|
 | 
			
		||||
 | 
			
		||||
To complete this task, you will apply the following three updates \(patches\)
 | 
			
		||||
and upgrade various systems.
 | 
			
		||||
 | 
			
		||||
**Platform update**
 | 
			
		||||
    The platform update contains metadata for the new Kubernetes version and the
 | 
			
		||||
    Kubernetes networking pods templates for the new Kubernetes version.
 | 
			
		||||
 | 
			
		||||
**Kubeadm update**
 | 
			
		||||
    The kubeadm update upgrades the kubeadm RPM to the new Kubernetes version.
 | 
			
		||||
 | 
			
		||||
**Kubelet and Kubectl update**
 | 
			
		||||
    This Kubernetes update upgrades kubelet and kubectl RPMs to the new
 | 
			
		||||
    Kubernetes version.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.. rubric:: |prereq|
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.. _manual-kubernetes-components-upgrade-ul-jbr-vcn-ylb:
 | 
			
		||||
 | 
			
		||||
-   The system must be clear of alarms.
 | 
			
		||||
 | 
			
		||||
-   All hosts must be unlocked, enabled and available.
 | 
			
		||||
 | 
			
		||||
-   All Kubernetes pods must be ready.
 | 
			
		||||
 | 
			
		||||
-   The installed applications must be compatible with the new Kubernetes
 | 
			
		||||
    version.
 | 
			
		||||
 | 
			
		||||
-   All updates required for the new Kubernetes version must be transferred to
 | 
			
		||||
    the active controller.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.. rubric:: |proc|
 | 
			
		||||
 | 
			
		||||
#.  Upload, apply and install the platform update.
 | 
			
		||||
 | 
			
		||||
    Use the standard :command:`sw-patch`, :command:`upload`, :command:`apply`
 | 
			
		||||
    and :command:`install` commands to perform these operations.
 | 
			
		||||
 | 
			
		||||
#.  List the available Kubernetes versions.
 | 
			
		||||
 | 
			
		||||
    .. code-block:: none
 | 
			
		||||
 | 
			
		||||
        ~(keystone_admin)]$ system kube-version-list
 | 
			
		||||
        +---------+--------+-----------+
 | 
			
		||||
        | Version | Target | State     |
 | 
			
		||||
        +---------+--------+-----------+
 | 
			
		||||
        | v1.16.1 | True   | active    |
 | 
			
		||||
        | v1.16.2 | False  | available |
 | 
			
		||||
        +---------+--------+-----------+
 | 
			
		||||
 | 
			
		||||
    The following meanings apply to the output shown:
 | 
			
		||||
 | 
			
		||||
    **Target**
 | 
			
		||||
        A value of True means that the target is currently selected for
 | 
			
		||||
        installation.
 | 
			
		||||
 | 
			
		||||
    **State**
 | 
			
		||||
        Can be one of:
 | 
			
		||||
 | 
			
		||||
        **active**
 | 
			
		||||
            The version is running everywhere.
 | 
			
		||||
 | 
			
		||||
        **partial**
 | 
			
		||||
            The version is running somewhere.
 | 
			
		||||
 | 
			
		||||
        **available**
 | 
			
		||||
            The version can be upgraded to.
 | 
			
		||||
 | 
			
		||||
#.  Upload, apply and install the kubeadm update.
 | 
			
		||||
 | 
			
		||||
    Use the standard :command:`sw-patch`, :command:`upload`, :command:`apply`
 | 
			
		||||
    and :command:`install` commands to perform these operations.
 | 
			
		||||
 | 
			
		||||
#.  Upload the kubelet update.
 | 
			
		||||
 | 
			
		||||
    .. note::
 | 
			
		||||
        Run the :command:`upload` command only:
 | 
			
		||||
 | 
			
		||||
        .. code-block:: none
 | 
			
		||||
 | 
			
		||||
            ~(keystone_admin)]$ sw-patch upload <kubelet-patch>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        The kubelet update cannot be applied before upgrading kubelet.
 | 
			
		||||
 | 
			
		||||
#.  Start the Kubernetes upgrade.
 | 
			
		||||
 | 
			
		||||
    For example:
 | 
			
		||||
 | 
			
		||||
    .. code-block:: none
 | 
			
		||||
 | 
			
		||||
        ~(keystone_admin)]$ system kube-upgrade-start v1.16.2
 | 
			
		||||
        +-------------------+-------------------+
 | 
			
		||||
        | Property          | Value             |
 | 
			
		||||
        +-------------------+-------------------+
 | 
			
		||||
        | from_version      | v1.16.1           |
 | 
			
		||||
        | to_version        | v1.16.2           |
 | 
			
		||||
        | state             | upgrade-started   |
 | 
			
		||||
        +-------------------+-------------------+
 | 
			
		||||
 | 
			
		||||
    The upgrade process checks the applied/available updates, the upgrade path,
 | 
			
		||||
    the health of the system, the installed applications compatibility and
 | 
			
		||||
    validates the system is ready for an upgrade.
 | 
			
		||||
 | 
			
		||||
    .. warning::
 | 
			
		||||
        If you use the command :command:`system kube-upgrade-start --force` to
 | 
			
		||||
        cause the upgrades process to ignore management affecting alarms and
 | 
			
		||||
        start, first determine that these alarms will not compromise the
 | 
			
		||||
        upgrade process.
 | 
			
		||||
 | 
			
		||||
#.  Download the Kubernetes images.
 | 
			
		||||
 | 
			
		||||
    For example:
 | 
			
		||||
 | 
			
		||||
    .. code-block:: none
 | 
			
		||||
 | 
			
		||||
        ~(keystone_admin)]$ system kube-upgrade-download-images
 | 
			
		||||
        +--------------+--------------------------------------+
 | 
			
		||||
        | Property     | Value                                |
 | 
			
		||||
        +--------------+--------------------------------------+
 | 
			
		||||
        | uuid         | b5f7dada-2537-4416-9d2c-f9ca9fcd0e22 |
 | 
			
		||||
        | from_version | v1.16.1                              |
 | 
			
		||||
        | to_version   | v1.16.2                              |
 | 
			
		||||
        | state        | downloading-images                   |
 | 
			
		||||
        | created_at   | 2020-02-20T16:08:48.854869+00:00     |
 | 
			
		||||
        | updated_at   | None                                 |
 | 
			
		||||
        +--------------+--------------------------------------+
 | 
			
		||||
 | 
			
		||||
#.  Confirm that the download has completed.
 | 
			
		||||
 | 
			
		||||
    .. code-block:: none
 | 
			
		||||
 | 
			
		||||
        ~(keystone_admin)]$ system-kube-upgrade-show
 | 
			
		||||
        +--------------+--------------------------------------+
 | 
			
		||||
        | Property     | Value                                |
 | 
			
		||||
        +--------------+--------------------------------------+
 | 
			
		||||
        | uuid         | b5f7dada-2537-4416-9d2c-f9ca9fcd0e22 |
 | 
			
		||||
        | from_version | v1.16.1                              |
 | 
			
		||||
        | to_version   | v1.16.2                              |
 | 
			
		||||
        | state        | downloaded-images                    |
 | 
			
		||||
        | created_at   | 2020-02-20T16:08:48.854869+00:00     |
 | 
			
		||||
        | updated_at   | 2020-02-20T16:10:37.858661+00:00     |
 | 
			
		||||
        +--------------+--------------------------------------+
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#.  Upgrade the control plane on the first controller.
 | 
			
		||||
 | 
			
		||||
    .. code-block:: none
 | 
			
		||||
 | 
			
		||||
        ~(keystone_admin)]$ system kube-host-upgrade controller-1 control-plane
 | 
			
		||||
        +-----------------------+-------------------------+
 | 
			
		||||
        | Property              | Value                   |
 | 
			
		||||
        +-----------------------+-------------------------+
 | 
			
		||||
        | control_plane_version | v1.16.1                 |
 | 
			
		||||
        | hostname              | controller-1            |
 | 
			
		||||
        | id                    | 2                       |
 | 
			
		||||
        | kubelet_version       | v1.16.1                 |
 | 
			
		||||
        | personality           | controller              |
 | 
			
		||||
        | status                | upgrading-control-plane |
 | 
			
		||||
        | target_version        | v1.16.2                 |
 | 
			
		||||
        +-----------------------+-------------------------+
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    You can upgrade either controller first.
 | 
			
		||||
 | 
			
		||||
    The state **upgraded-first-master** will be entered when the first control
 | 
			
		||||
    plane upgrade has completed.
 | 
			
		||||
 | 
			
		||||
#.  Upgrade Kubernetes networking.
 | 
			
		||||
 | 
			
		||||
    This step must be completed after the first control plane has been upgraded
 | 
			
		||||
    and before upgrading the second control plane.
 | 
			
		||||
 | 
			
		||||
    .. code-block:: none
 | 
			
		||||
 | 
			
		||||
        ~(keystone_admin)]$ system kube-upgrade-networking
 | 
			
		||||
        +--------------+--------------------------------------+
 | 
			
		||||
        | Property     | Value                                |
 | 
			
		||||
        +--------------+--------------------------------------+
 | 
			
		||||
        | uuid         | b5f7dada-2537-4416-9d2c-f9ca9fcd0e22 |
 | 
			
		||||
        | from_version | v1.16.1                              |
 | 
			
		||||
        | to_version   | v1.16.2                              |
 | 
			
		||||
        | state        | upgrading-networking                 |
 | 
			
		||||
        | created_at   | 2020-02-20T16:08:48.854869+00:00     |
 | 
			
		||||
        | updated_at   | 2020-02-20T16:18:11.459736+00:00     |
 | 
			
		||||
        +--------------+--------------------------------------+
 | 
			
		||||
 | 
			
		||||
    The state **upgraded-networking** will be entered when the networking
 | 
			
		||||
    upgrade has completed.
 | 
			
		||||
 | 
			
		||||
#.  Upgrade the control plane on the second controller.
 | 
			
		||||
 | 
			
		||||
    .. code-block:: none
 | 
			
		||||
 | 
			
		||||
        ~(keystone_admin)]$ system kube-host-upgrade controller-0 control-plane
 | 
			
		||||
        +-----------------------+-------------------------+
 | 
			
		||||
        | Property              | Value                   |
 | 
			
		||||
        +-----------------------+-------------------------+
 | 
			
		||||
        | control_plane_version | v1.16.1                 |
 | 
			
		||||
        | hostname              | controller-0            |
 | 
			
		||||
        | id                    | 1                       |
 | 
			
		||||
        | kubelet_version       | v1.16.1                 |
 | 
			
		||||
        | personality           | controller              |
 | 
			
		||||
        | status                | upgrading-control-plane |
 | 
			
		||||
        | target_version        | v1.16.2                 |
 | 
			
		||||
        +-----------------------+-------------------------+
 | 
			
		||||
 | 
			
		||||
    The state **upgraded-second-master** will be entered when the upgrade has
 | 
			
		||||
    completed.
 | 
			
		||||
 | 
			
		||||
#.  Show the Kubernetes upgrade status for all hosts.
 | 
			
		||||
 | 
			
		||||
    .. code-block:: none
 | 
			
		||||
 | 
			
		||||
        ~(keystone_admin)]$ system kube-host-upgrade-list
 | 
			
		||||
        +----+--------------+-------------+----------------+-----------------------+-----------------+--------+
 | 
			
		||||
        | id | hostname     | personality | target_version | control_plane_version | kubelet_version | status |
 | 
			
		||||
        +----+--------------+-------------+----------------+-----------------------+-----------------+--------+
 | 
			
		||||
        | 1  | controller-0 | controller  | v1.16.2        | v1.16.2               | v1.16.1         | None   |
 | 
			
		||||
        | 2  | controller-1 | controller  | v1.16.2        | v1.16.2               | v1.16.1         | None   |
 | 
			
		||||
        | 3  | storage-0    | storage     | v1.16.1        | N/A                   | N/A             | None   |
 | 
			
		||||
        | 4  | storage-1    | storage     | v1.16.1        | N/A                   | N/A             | None   |
 | 
			
		||||
        | 5  | worker-0     | worker      | v1.16.1        | N/A                   | v1.16.1         | None   |
 | 
			
		||||
        | 6  | worker- 1    | worker      | v1.16.1        | N/A                   | v1.16.1         | None   |
 | 
			
		||||
        +----+--------------+-------------+----------------+-----------------------+-----------------+--------+
 | 
			
		||||
 | 
			
		||||
    The control planes of both controllers are now upgraded to v1.16.2.
 | 
			
		||||
 | 
			
		||||
#.  Apply and install the kubectl update.
 | 
			
		||||
 | 
			
		||||
    Use the standard :command:`sw-patch`, :command:`apply` and
 | 
			
		||||
    :command:`install` commands to perform these operations.
 | 
			
		||||
 | 
			
		||||
    This places the new version of kubelet binary on each host, but will not
 | 
			
		||||
    restart kubelet.
 | 
			
		||||
 | 
			
		||||
#.  Upgrade kubelet on both controllers.
 | 
			
		||||
 | 
			
		||||
    Either controller can be upgraded first.
 | 
			
		||||
 | 
			
		||||
    The kubelets on all controller hosts must be upgraded before upgrading
 | 
			
		||||
    kubelets on worker hosts.
 | 
			
		||||
 | 
			
		||||
    For each controller, do the following.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    #.  For non |AIO-SX| systems, lock the controller.
 | 
			
		||||
 | 
			
		||||
        For example:
 | 
			
		||||
 | 
			
		||||
        .. code-block:: none
 | 
			
		||||
 | 
			
		||||
            ~(keystone_admin)]$ system host-lock controller-1
 | 
			
		||||
 | 
			
		||||
        .. note::
 | 
			
		||||
            For All-In-One Simplex systems, the controller must **not** be
 | 
			
		||||
            locked.
 | 
			
		||||
 | 
			
		||||
    #.  Apply the upgrade.
 | 
			
		||||
 | 
			
		||||
        For example:
 | 
			
		||||
 | 
			
		||||
        .. code-block:: none
 | 
			
		||||
 | 
			
		||||
            ~(keystone_admin)]$ system kube-host-upgrade controller-1 kubelet
 | 
			
		||||
            +-----------------------+-------------------+
 | 
			
		||||
            | Property              | Value             |
 | 
			
		||||
            +-----------------------+-------------------+
 | 
			
		||||
            | control_plane_version | v1.16.2           |
 | 
			
		||||
            | hostname              | controller-1      |
 | 
			
		||||
            | id                    | 2                 |
 | 
			
		||||
            | kubelet_version       | v1.16.1           |
 | 
			
		||||
            | personality           | controller        |
 | 
			
		||||
            | status                | upgrading-kubelet |
 | 
			
		||||
            | target_version        | v1.16.2           |
 | 
			
		||||
            +-----------------------+-------------------+
 | 
			
		||||
 | 
			
		||||
    #.  For non |AIO-SX| systems, unlock the controller.
 | 
			
		||||
 | 
			
		||||
        For example:
 | 
			
		||||
 | 
			
		||||
        .. code-block:: none
 | 
			
		||||
 | 
			
		||||
            ~(keystone_admin)]$ system host-unlock controller-1
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#.  Show the Kubernetes upgrade status.
 | 
			
		||||
 | 
			
		||||
    .. code-block:: none
 | 
			
		||||
 | 
			
		||||
        ~(keystone_admin)]$ system kube-upgrade-show
 | 
			
		||||
        +--------------+--------------------------------------+
 | 
			
		||||
        | Property     | Value                                |
 | 
			
		||||
        +--------------+--------------------------------------+
 | 
			
		||||
        | uuid         | b5f7dada-2537-4416-9d2c-f9ca9fcd0e22 |
 | 
			
		||||
        | from_version | v1.16.1                              |
 | 
			
		||||
        | to_version   | v1.16.2                              |
 | 
			
		||||
        | state        | upgrading-kubelets                   |
 | 
			
		||||
        | created_at   | 2020-02-20T16:08:48.854869+00:00     |
 | 
			
		||||
        | updated_at   | 2020-02-20T21:53:16.347406+00:00     |
 | 
			
		||||
        +--------------+--------------------------------------+
 | 
			
		||||
 | 
			
		||||
#.  Upgrade kubelet on all worker hosts.
 | 
			
		||||
 | 
			
		||||
    Multiple worker hosts can be upgraded simultaneously provided there is
 | 
			
		||||
    sufficient capacity remaining on other worker hosts.
 | 
			
		||||
 | 
			
		||||
    For each worker host, do the following:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    #.  Lock the host.
 | 
			
		||||
 | 
			
		||||
        For example:
 | 
			
		||||
 | 
			
		||||
        .. code-block:: none
 | 
			
		||||
 | 
			
		||||
            ~(keystone_admin)]$ system host-lock worker-1
 | 
			
		||||
 | 
			
		||||
    #.  Perform the upgrade.
 | 
			
		||||
 | 
			
		||||
        For example:
 | 
			
		||||
 | 
			
		||||
        .. code-block:: none
 | 
			
		||||
 | 
			
		||||
            ~(keystone_admin)]$ system kube-host-upgrade worker-1 kubelet
 | 
			
		||||
            +-----------------------+-------------------+
 | 
			
		||||
            | Property              | Value             |
 | 
			
		||||
            +-----------------------+-------------------+
 | 
			
		||||
            | control_plane_version | v1.16.2           |
 | 
			
		||||
            | hostname              | worker-1          |
 | 
			
		||||
            | id                    | 3                 |
 | 
			
		||||
            | kubelet_version       | v1.16.1           |
 | 
			
		||||
            | personality           | worker            |
 | 
			
		||||
            | status                | upgrading-kubelet |
 | 
			
		||||
            | target_version        | v1.16.2           |
 | 
			
		||||
            +-----------------------+-------------------+
 | 
			
		||||
 | 
			
		||||
    #.  Unlock the host.
 | 
			
		||||
 | 
			
		||||
        For example:
 | 
			
		||||
 | 
			
		||||
        .. code-block:: none
 | 
			
		||||
 | 
			
		||||
            ~(keystone_admin)]$ system host-unlock worker-1
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
#.  Complete the Kubernetes upgrade.
 | 
			
		||||
 | 
			
		||||
    .. code-block:: none
 | 
			
		||||
 | 
			
		||||
        ~(keystone_admin)]$ system kube-upgrade-complete
 | 
			
		||||
        +--------------+--------------------------------------+
 | 
			
		||||
        | Property     | Value                                |
 | 
			
		||||
        +--------------+--------------------------------------+
 | 
			
		||||
        | uuid         | 4e942297-465e-47d4-9e1b-9fb1630be33c |
 | 
			
		||||
        | from_version | v1.16.1                              |
 | 
			
		||||
        | to_version   | v1.16.2                              |
 | 
			
		||||
        | state        | upgrade-complete                     |
 | 
			
		||||
        | created_at   | 2020-02-19T20:59:51.079966+00:00     |
 | 
			
		||||
        | updated_at   | 2020-02-24T15:03:34.572199+00:00     |
 | 
			
		||||
        +--------------+--------------------------------------+
 | 
			
		||||
 | 
			
		||||
.. from step 1
 | 
			
		||||
.. For more
 | 
			
		||||
    information, see the :ref:`Managing Software Updates
 | 
			
		||||
    <managing-software-updates>`.
 | 
			
		||||
@@ -0,0 +1,182 @@
 | 
			
		||||
 | 
			
		||||
.. htb1590431033292
 | 
			
		||||
.. _the-kubernetes-update-orchestration-process:
 | 
			
		||||
 | 
			
		||||
=======================================================
 | 
			
		||||
Kubernetes Version Upgrade Cloud Orchestration Overview
 | 
			
		||||
=======================================================
 | 
			
		||||
 | 
			
		||||
For an orchestrated Kubernetes version upgrade you need to first create a
 | 
			
		||||
*Kubernetes Upgrade Orchestration Strategy*, or plan for the automated
 | 
			
		||||
Kubernetes version upgrade procedure.
 | 
			
		||||
 | 
			
		||||
You can customize the Kubernetes version upgrade orchestration by specifying
 | 
			
		||||
the following parameters:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.. _htb1590431033292-ul-pdh-5ms-tlb:
 | 
			
		||||
 | 
			
		||||
-   The host types to be upgraded; only **worker-apply-type** is supported.
 | 
			
		||||
 | 
			
		||||
-   The alarm restriction mode; **strict** or **relaxed** where the **relaxed**
 | 
			
		||||
    mode allows the strategy to be created while there are alarms present that
 | 
			
		||||
    are not management-affecting.
 | 
			
		||||
 | 
			
		||||
-   The concurrency of the upgrade process; whether to Kubernetes version
 | 
			
		||||
    upgrade hosts **serially** or in **parallel**.
 | 
			
		||||
 | 
			
		||||
-   The maximum number of worker hosts that can be upgraded together when
 | 
			
		||||
    **parallel** mode is selected.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
For hosts that have the |prefix|-openstack application running with active
 | 
			
		||||
instances and since the Kubernetes version upgrade is a reboot required
 | 
			
		||||
operation for a host, the strategy offers **stop/start** or **migrate** options
 | 
			
		||||
for managing instances over the **lock/unlock** \(reboot\) steps in the upgrade
 | 
			
		||||
process.
 | 
			
		||||
 | 
			
		||||
You must use the **sw-manager** CLI tool to **create**, and then **apply** the
 | 
			
		||||
upgrade strategy. A created strategy can be monitored with the **show**
 | 
			
		||||
command.
 | 
			
		||||
 | 
			
		||||
Kubernetes version upgrade orchestration automatically iterates through all
 | 
			
		||||
**unlocked-enabled** hosts on the system looking for hosts with the worker
 | 
			
		||||
function that need Kubernetes version upgrade and then proceeds to upgrade them
 | 
			
		||||
on the strategy :command:`apply` action.
 | 
			
		||||
 | 
			
		||||
.. note::
 | 
			
		||||
    Controllers (including |AIO| controllers) are upgraded before worker only
 | 
			
		||||
    hosts.  Storage hosts do not run Kubernetes so Kubernetes is not upgraded
 | 
			
		||||
    on them, although they still may be patched.
 | 
			
		||||
 | 
			
		||||
After creating the *Kubernetes Version Upgrade Orchestration Strategy*, you can
 | 
			
		||||
either apply the entire strategy automatically, or manually apply individual
 | 
			
		||||
stages to control and monitor the Kubernetes version upgrade progress one stage
 | 
			
		||||
at a time.
 | 
			
		||||
 | 
			
		||||
When the Kubernetes version upgrade strategy is **applied**, if the system is
 | 
			
		||||
All-in-one, the controllers are upgraded first, one after the other with a
 | 
			
		||||
swact in between, followed by the remaining worker hosts according to the
 | 
			
		||||
selected worker apply concurrency \(**serial** or **parallel**\) method.
 | 
			
		||||
 | 
			
		||||
The strategy creation default is to upgrade the worker hosts serially unless
 | 
			
		||||
the **parallel** worker apply type option is specified which configures the
 | 
			
		||||
Kubernetes version upgrade process for worker hosts to be in parallel \(up to a
 | 
			
		||||
maximum parallel number\) to reduce the overall Kubernetes version upgrade
 | 
			
		||||
installation time.
 | 
			
		||||
 | 
			
		||||
The upgrade takes place in two phases.  The first phase upgrades the patches
 | 
			
		||||
(controllers, storage and then workers), and the second  phase upgrades
 | 
			
		||||
Kubernetes based on those patches (controllers, then hosts).
 | 
			
		||||
 | 
			
		||||
.. _htb1590431033292-ol-a1b-v5s-tlb:
 | 
			
		||||
 | 
			
		||||
#.  Alarm query. This step is an upgrade pre-check.
 | 
			
		||||
 | 
			
		||||
#.  Initiate the Kubernetes version upgrade.
 | 
			
		||||
 | 
			
		||||
#.  Download Kubernetes Images.
 | 
			
		||||
 | 
			
		||||
#.  Upgrade the first Control Plane.
 | 
			
		||||
 | 
			
		||||
#.  Upgrade Kubernetes networking.
 | 
			
		||||
 | 
			
		||||
#.  Upgrade the second control plane (on duplex environments only).
 | 
			
		||||
 | 
			
		||||
#.  Patch the hosts.
 | 
			
		||||
 | 
			
		||||
    #.  Patch controller nodes if they are not |AIO|.
 | 
			
		||||
 | 
			
		||||
    #.  Patch storage nodes.
 | 
			
		||||
 | 
			
		||||
    #.  Patch worker nodes (this includes |AIO| controllers).
 | 
			
		||||
 | 
			
		||||
#.  Upgrade Kubelets on the hosts (controllers then workers.  If controllers
 | 
			
		||||
    are |AIO| they are processed before regular workers).
 | 
			
		||||
 | 
			
		||||
    #.  Swact if the host is the active controller.
 | 
			
		||||
 | 
			
		||||
    #.  Lock the host.
 | 
			
		||||
 | 
			
		||||
    #.  Upgrade kubelet.
 | 
			
		||||
 | 
			
		||||
    #.  Unlock the host.
 | 
			
		||||
 | 
			
		||||
    #.  Restore |VMs| (if applicable).
 | 
			
		||||
 | 
			
		||||
#.  Complete the Kubernetes version upgrade.
 | 
			
		||||
 | 
			
		||||
Systems with |prefix|-openstack application enabled could include additional
 | 
			
		||||
instance management steps. For more information, see :ref:`Kubernetes Version
 | 
			
		||||
Upgrade Operations Requiring Manual Migration
 | 
			
		||||
<kubernetes-update-operations-requiring-manual-migration>`.
 | 
			
		||||
 | 
			
		||||
On systems with |prefix|-openstack application, the *Kubernetes Version Upgrade
 | 
			
		||||
Orchestration Strategy* considers any configured server groups and host
 | 
			
		||||
aggregates when creating the stages to reduce the impact to running instances.
 | 
			
		||||
The *Kubernetes Version Upgrade Orchestration Strategy* automatically manages
 | 
			
		||||
the instances during the strategy application process. The instance management
 | 
			
		||||
options include **start-stop** or **migrate**.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.. _htb1590431033292-ul-vcp-dvs-tlb:
 | 
			
		||||
 | 
			
		||||
-   **start-stop**: where instances are stopped following the actual Kubernetes
 | 
			
		||||
    upgrade but before the lock operation and then automatically started again
 | 
			
		||||
    after the unlock completes. This is typically used for instances that do
 | 
			
		||||
    not support migration or for cases where migration takes too long. To
 | 
			
		||||
    ensure this does not impact the high-level service being provided by the
 | 
			
		||||
    instance, the instance\(s\) should be protected and grouped into an
 | 
			
		||||
    anti-affinity server group\(s\) with its standby instance.
 | 
			
		||||
 | 
			
		||||
-   **migrate**: where instances are moved off a host following the Kubernetes
 | 
			
		||||
    upgrade but before the host is locked. Instances with **Live Migration**
 | 
			
		||||
    support are **Live Migrated**. Otherwise, they are **Cold Migrated**.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.. _kubernetes-update-operations-requiring-manual-migration:
 | 
			
		||||
 | 
			
		||||
----------------------------------------
 | 
			
		||||
Manually Migrating Application Instances
 | 
			
		||||
----------------------------------------
 | 
			
		||||
 | 
			
		||||
On systems with the |prefix|-openstack application there may be some instances
 | 
			
		||||
that cannot be migrated automatically by orchestration. In these cases the
 | 
			
		||||
instance migration must be managed manually.
 | 
			
		||||
 | 
			
		||||
Do the following to manage the instance re-location manually:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.. _rbp1590431075472-ul-mgr-kvs-tlb:
 | 
			
		||||
 | 
			
		||||
-   Manually perform Kubernetes version upgrade at least one openstack-compute worker host. This
 | 
			
		||||
    assumes that at least one openstack-compute worker host does not have any
 | 
			
		||||
    instances, or has instances that can be migrated. For more information on
 | 
			
		||||
    manually updating a host, see :ref:`Kubernetes Version Upgrade
 | 
			
		||||
    <manual-kubernetes-components-upgrade>`.
 | 
			
		||||
 | 
			
		||||
-   If the migration is prevented by limitations in the VNF or virtual
 | 
			
		||||
    application, perform the following:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    -   Create new instances on an already upgraded openstack-compute worker
 | 
			
		||||
        host.
 | 
			
		||||
 | 
			
		||||
    -   Manually migrate the data from the old instances to the new instances.
 | 
			
		||||
 | 
			
		||||
        .. note::
 | 
			
		||||
            This is specific to your environment and depends on the virtual
 | 
			
		||||
            application running in the instance.
 | 
			
		||||
 | 
			
		||||
    -   Terminate the old instances.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
-   If the migration is prevented by the size of the instances local disks:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    -   For each openstack-compute worker host that has instances that cannot
 | 
			
		||||
        be migrated, manually move the instances using the CLI.
 | 
			
		||||
 | 
			
		||||
Once all openstack-compute worker hosts containing instances that cannot be
 | 
			
		||||
migrated have been Kubernetes version upgraded, Kubernetes version upgrade
 | 
			
		||||
orchestration can then be used to upgrade the remaining worker hosts.
 | 
			
		||||
		Reference in New Issue
	
	Block a user