Skip to content

Latest commit

 

History

History
117 lines (73 loc) · 5.54 KB

updating-kurl.mdx

File metadata and controls

117 lines (73 loc) · 5.54 KB

import InstallerRequirements from "../partials/updating/_installerRequirements.mdx" import UpgradePrompt from "../partials/updating/_upgradePrompt.mdx" import AdminConsole from "../partials/updating/_admin-console.mdx" import AdminConsoleAirGap from "../partials/updating/_admin-console-air-gap.mdx" import DownloadKurlBundle from "../partials/install/_download-kurl-bundle.mdx" import KurlAvailability from "../partials/kurl/_kurl-availability.mdx"

Performing Updates in kURL Clusters

This topic describes how to perform updates in Replicated kURL installations. It includes procedures for updating an application, as well as for updating the versions of Kubernetes, Replicated KOTS, and add-ons in a kURL cluster.

For more information about managing nodes in kURL clusters, including how to safely reset, reboot, and remove nodes when performing maintenance tasks, see Managing Nodes in the open source kURL documentation.

Update an Application

For kURL installations, you can update an application from the Admin Console. You can also set up automatic updates. See Configuring Automatic Updates.

Online Environments

Air Gap Environments

Update the kURL Cluster

After updating the kURL installer spec, you can rerun the kURL installation script to update a kURL cluster. For more information about kURL cluster udpates, see About kURL Cluster Updates.

For more information about managing nodes in kURL clusters, including how to safely reset, reboot, and remove nodes when performing maintenance tasks, see Managing Nodes in the open source kURL documentation.

:::important The Kubernetes scheduler automatically reschedules Pods to other nodes during maintenance. Any deployments or StatefulSets with a single replica experience downtime while being rescheduled. :::

Online Environments

To update the kURL cluster in an online environment:

  1. Edit the kURL installer spec as desired. For example, update the version of Kubernetes or add, remove, or update add-ons. For more information, see Creating a kURL Installer.

  2. Run the kURL installation script on any primary node in the cluster:

    curl -sSL https://k8s.kurl.sh/APP_SLUG | sudo bash -s ADVANCED_OPTIONS

    Replace:

    • APP_SLUG with the unique slug for the application.

    • ADVANCED_OPTIONS optionally with any flags listed in Advanced Options in the kURL documentation.

      To use no advanced installation options, remove -s ADVANCED_OPTIONS from the command.

      See the following recommendations for advanced options:

Air Gap Environments

For air gap installations, you must load images on each node in the cluster before you can run the installation script to update Kubernetes and any add-ons. This is because upgraded components might have Pods scheduled on any node in the cluster.

To update the kURL cluster in an air gap environment:

  1. Edit the kURL installer spec as desired. For example, update the version of Kubernetes or add, remove, or update add-ons. For more information, see Creating a kURL Installer.

  2. Repeat the following steps on each node in the cluster to download and extract the kURL .tar.gz air gap bundle for the updated spec:

    1. Download the kURL .tar.gz air gap bundle from the channel where the new kURL installer spec is promoted:

      • To download the kURL air gap bundle for the Stable channel:

      • To download the kURL bundle for channels other than Stable:

        replicated channel inspect CHANNEL

        Replace CHANNEL with the exact name of the target channel, which can include uppercase letters or special characters, such as Unstable or my-custom-channel.

        In the output of this command, copy the curl command with the air gap URL.

    2. Extract the contents of the bundle:

      tar -xvzf FILENAME.tar.gz

      Replace FILENAME with the name of the downloaded kURL .tar.gz air gap bundle.

  3. Run the following KURL script to ensure all required images are available:

    cat tasks.sh | sudo bash -s load-images

    :::note The kURL installation script that you will run in the next step also performs a check for required images and prompts you to run the load-images command if any images are missing. :::

  4. Run the kURL installation script on any primary node in the cluster with the airgap option:

    cat install.sh | sudo bash -s airgap OTHER_ADVANCED_OPTIONS

    Replace OTHER_ADVANCED_OPTIONS optionally with any flags listed in Advanced Options in the kURL documentation.

    See the following recommendations for advanced options:

  5. :::note If Kubernetes must be upgraded by more than one minor version, the script automatically searches for the required Kubernetes assets in the /var/lib/kurl/assets/ directory. If the assets are not available, the script prints a command to download the assets as a tar.gz package. Download and provide the absolute path to the package when prompted to continue with the upgrade. :::