Upgrade: For Air-gapped Environments Only
Because air-gapped environments do not have direct access to the Internet, you must download, extract and load several required images to your local container registry, before installing or upgrading DKP. The information below will be covered as a step during either Enterprise or Essential Upgrade steps, but feel free to familiarize yourself with the concept below if desired. Otherwise, depending on your license type, follow the relevant link to begin upgrading:
Overview of Seeding the Registry for Air-gapped Environment
In previous DKP releases, images provided by the upstream CAPA project would be used if you did not specify an image. However, the upstream images are not recommended for production and may not always be available. Therefore, DKP now requires you to specify an AMI when creating a cluster. To create an custom image, use Konvoy Image Builder.
Explore the Customize your Image topic for more options.
Using KIB, you can build an image without requiring access to the internet by providing an additional --override
flag.
Before Upgrading
For air-gapped environments - before you begin the Upgrade the CAPI Components process later in the upgrade steps, you much create a local package bundle for the artifacts.
In previous DKP releases, the distro package bundles were included in the downloaded air-gapped bundle: dkp-air-gapped-bundle_v2.8.2_linux_amd64.tar.gz
. Currently, that air-gapped bundle contains the following artifacts with the exception of the distro packages:
DKP Kubernetes packages
Python packages (provided by upstream)
Containerd tarball
Download the Complete DKP Air-gapped Bundle for this release (i.e.
dkp-air-gapped-bundle_v2.8.2_linux_amd64.tar.gz
) to load registry images as explained below.You will need to fetch the distro packages as well as other artifacts. By fetching the distro packages from distro repositories, you get the latest security fixes available at machine image build time.
Download the correct KIB version for your DKP version and host OS/architecture for where you will build the OS bundle (not the OS that will be used to deploy the KIB image or DKP cluster): Konvoy Image Builder
In your download location with internet access, you need to create an OS package bundle for the Target OS you use for the nodes in your DKP cluster. To create it, run the new DKP command
create-package-bundle
. This builds an OS bundle using the Kubernetes version defined inansible/group_vars/all/defaults.yaml
. Example command:CODE./konvoy-image create-package-bundle --os redhat-8.4 --output-directory=artifacts
Other supported air-gapped Operating Systems (OSs) can be specified in place of --os redhat-8.4
using the flag and corresonding OS name:
centos-7.9
redhat-7.9
redhat-8.6
redhat-8.8
rocky-9.1
ubuntu-20.04
The Kubernetes image bundle will be located in
kib/artifacts/images
and you will want to verify image and artifacts. Verify the image bundles exist inkib/artifacts/images
:CODE$ ls kib/artifacts/images/ kubernetes-images-1.28.7-d2iq.1.tar kubernetes-images-1.28.7-d2iq.1-fips.tar
Bring the resulting file in the
artifacts
directory from step 3, as well as the complete air-gapped bundle, into your air-gapped environment and proceed with the upgrade/installation as normal.For Pre-Provisioned Only:
Upload the artifacts onto cluster hosts:
CODEkonvoy-image upload artifacts \ --container-images-dir=./kib/artifacts/images/ \ --os-packages-bundle=./kib/artifacts/${OS_PACKAGES_BUNDLE} \ --containerd-bundle=./kib/artifacts/${CONTAINERD_BUNDLE} \ --pip-packages-bundle=./kib/artifacts/pip-packages.tar.gz
Download all Images for Air-gapped Deployments
If you are operating in an air-gapped environment, a local container registry containing all the necessary installation images, including the Kommander images is required. See below for prerequisites to download and then how to push the necessary images to this registry.
Connectivity with clusters attaching to the management cluster is required:
Both management and attached clusters must be able to connect to the local registry.
The management cluster must be able to connect to all attached cluster’s API servers.
The management cluster must be able to connect to any load balancers created for platform services on the management cluster.
Extract Air-gapped Images and Set Variables
Follow these steps to extract the air-gapped image bundles into your private registry:
Assuming you have downloaded
dkp-air-gapped-bundle_v2.8.2_linux_amd64.tar.gz
, extract the tarball to a local directory:CODEtar -xzvf dkp-air-gapped-bundle_v2.8.2_linux_amd64.tar.gz
The directory structure after extraction can be accessed in subsequent steps using commands to access files from different directories. EX: For the bootstrap, change your directory to the
dkp-<version>
directory similar to example below depending on your current location:CODEcd dkp-v2.8.2
Set an environment variable with your registry address:
CODEexport REGISTRY_URL="<https/http>://<registry-address>:<registry-port>" export REGISTRY_USERNAME=<username> export REGISTRY_PASSWORD=<password>
Only Pre-provisioned: Load Images for Deployments - Konvoy
For Pre-provisioned air-gapped environments only, you must run konvoy-image upload artifacts
to copy the artifacts onto the cluster hosts before you begin the Upgrade the CAPI Components process later in the upgrade steps.
The Kubernetes image bundle will be located in
kib/artifacts/images
and you will want to verify image and artifacts.Verify the image bundles exist in
kib/artifacts/images
:CODE$ ls kib/artifacts/images/ kubernetes-images-1.28.7-d2iq.1.tar kubernetes-images-1.28.7-d2iq.1-fips.tar
Verify the artifacts for your OS exist in the
kib/artifacts/
directory and export the appropriate variables:CODE$ ls kib/artifacts/ 1.28.7_centos_7_x86_64.tar.gz 1.28.7_redhat_8_x86_64_fips.tar.gz containerd-1.6.28-d2iq.1-rhel-7.9-x86_64.tar.gz containerd-1.6.28-d2iq.1-rhel-8.6-x86_64_fips.tar.gz pip-packages.tar.gz 1.28.7_centos_7_x86_64_fips.tar.gz 1.28.7_rocky_9_x86_64.tar.gz containerd-1.6.28-d2iq.1-rhel-7.9-x86_64_fips.tar.gz containerd-1.6.28-d2iq.1-rocky-9.0-x86_64.tar.gz 1.28.7_redhat_7_x86_64.tar.gz 1.28.7_ubuntu_20_x86_64.tar.gz containerd-1.6.28-d2iq.1-rhel-8.4-x86_64.tar.gz containerd-1.6.28-d2iq.1-rocky-9.1-x86_64.tar.gz 1.28.7_redhat_7_x86_64_fips.tar.gz containerd-1.6.28-d2iq.1-centos-7.9-x86_64.tar.gz containerd-1.6.28-d2iq.1-rhel-8.4-x86_64_fips.tar.gz containerd-1.6.28-d2iq.1-ubuntu-20.04-x86_64.tar.gz 1.28.7_redhat_8_x86_64.tar.gz containerd-1.6.28-d2iq.1-centos-7.9-x86_64_fips.tar.gz containerd-1.6.28-d2iq.1-rhel-8.6-x86_64.tar.gz images
Set the bundle values with the name from the private registry location:
CODEexport OS_PACKAGES_BUNDLE=<name_of_the_OS_package> export CONTAINERD_BUNDLE=<name_of_the_containerd_bundle>
For example, for RHEL 8.4 you would set:
CODEexport OS_PACKAGES_BUNDLE=1.28.7_redhat_8_x86_64.tar.gz export CONTAINERD_BUNDLE=containerd-1.6.28-d2iq.1-rhel-8.4-x86_64.tar.gz
Upload the artifacts onto cluster hosts:
CODEkonvoy-image upload artifacts \ --container-images-dir=./kib/artifacts/images/ \ --os-packages-bundle=./kib/artifacts/${OS_PACKAGES_BUNDLE} \ --containerd-bundle=./kib/artifacts/${CONTAINERD_BUNDLE} \ --pip-packages-bundle=./kib/artifacts/pip-packages.tar.gz
Load Images to your Private Registry - Konvoy
Before creating or upgrading a Kubernetes cluster, you need to load the required images in a local registry if operating in an air-gapped environment. This registry must be accessible from both the bastion machine and either the AWS EC2 instances or other machines that will be created for the Kubernetes cluster.
If you do not already have a local registry set up, refer to Local Registry Tools page for more information.
Execute the following command to load the air-gapped image bundle into your private registry:
dkp push bundle --bundle ./container-images/konvoy-image-bundle-v2.8.2.tar --to-registry=${REGISTRY_URL} --to-registry-username=${REGISTRY_USERNAME} --to-registry-password=${REGISTRY_PASSWORD}
It may take some time to push all the images to your image registry, depending on the performance of the network between the machine you are running the script on and the registry.
Load Images to your Private Registry - Kommander
Load Kommander images to your Private Registry
For the air-gapped kommander
image bundle, run the command below:
Run the following command to load the image bundle:
dkp push bundle --bundle ./container-images/kommander-image-bundle-v2.8.2.tar --to-registry=${REGISTRY_URL} --to-registry-username=${REGISTRY_USERNAME} --to-registry-password=${REGISTRY_PASSWORD}
Load Images to your Private Registry - DKP Catalog Applications
Optional: This step is required only if you have an Enterprise license.
For DKP Catalog Applications, also perform this image load:
Run the following command to load the dkp-catalog-applications
image bundle into your private registry:
dkp push bundle --bundle ./container-images/dkp-catalog-applications-image-bundle-v2.8.2.tar --to-registry=${REGISTRY_URL} --to-registry-username=${REGISTRY_USERNAME} --to-registry-password=${REGISTRY_PASSWORD}
Next Step:
Depending on your license type, you will follow the relevant link: