Upgrading Kubernetes Versions in an Air-Gapped Environment

Overview

This guide outlines the steps for upgrading the following components in an air-gapped environment using an embedded cluster:

  • Kubernetes version upgrades
  • Upgrades for any add-on bundled into the embedded installer

Process

Complete the following steps to complete the upgrade process:

  1. Access the Download Portal using the link provided to you during your initial installation, then log in using the password associated to your account.

    ℹ️

    Contact Kinetic Support if you have lost the link and/or your password.

  2. Select Embedded cluster from the left-hand menu.

  3. Under Embedded Kubernetes Installer, click Download bundle. This will download the tarball installer (*.tar.gz).

  4. Move the tarball installer onto all nodes running in your cluster using the approved method for adding files into your environment.

    ℹ️

    Optional: We recommend opening a command-line interface (CLI) to every node in your environment, as you will need to run commands on each server sequentially.

  5. Unpack the installer tarball on every node using the following command:

    tar -zxvf installer_file.tar.gz
    
  6. Run the task.sh script on every node to ensure all required images that are bundled in the installer are available:

    cat tasks.sh | sudo bash -s load-images
    
  7. Run the install.sh script, adding other advanced options with flags that were used on the first installation. For example, if you ran the original install for a High Availability Cluster, the ha flag was added.

    ℹ️

    Check the Admin Console for the Kinetic Platform to see whether there are any pending platform releases available that have not yet been applied. This process will automatically upgrade the platform to the latest release available. If you want to skip this automatic upgrade, add the app-version-label flag and point it to the release you want to remain on (i.e. app-version-label=1.2.3).

    cat install.sh \
      | sed 's|kubeadm upgrade plan|kubeadm upgrade plan --ignore-preflight-errors=CoreDNSUnsupportedPlugins|' \
      | sudo bash -s airgap [ha,app-verison-label,...]
    
  8. The script will automatically print a “Drain local node and apply upgrade?” prompt if a Kubernetes Version upgrade is required. The script will then drain and upgrade each other node in the cluster sequentially.

  9. If you did not open CLIs to other nodes in the cluster, do so now.

  10. When prompted, run additional commands on the other nodes in the cluster. The upgrade is complete once the install.sh script is done running.