Upgrade Prerequisites
Verify that you have the following components in place before you begin upgrading MKE 3 to MKE 4k:
An eligible MKE 3 cluster:
- MKE 3.7.15 or later
- Any MKE 3.8 release
A backup of the MKE cluster. For comprehensive instruction on how to create an MKE 3 back up, refer to Back up MKE.
The latest
mkectl
binary, installed on your local environment:mkectl version
Example output:
Version: v4.1.0
A hosts.yaml file, prepared as follows:
hosts: - address: <host1-external-ip> port: <ssh-port> user: <ssh-user> keyPath: <path-to-ssh-key> - address: <host2-external-ip> port: <ssh-port> user: <ssh-user> keyPath: <path-to-ssh-key>
- Confirm that all nodes are accessible via SSH, using the specified credentials.
- Use either external IP addresses or FQDNs. These must be resolvable and reachable from the system from which you are running mkectl. Mirantis recommends that you use a load balancer is recommended for high-availability setups.
- It is not necessary to declare a node role in the
hosts.yaml
file as they are automatically detected during upgrade.
⚠️
To upgrade successfully to MKE 4k, the source MKE 3 cluster must be configured to use KDD.
To migrate Calico to KDD from etcd:
Obtain the MKE 3 configuration file:
export MKE_USERNAME=<mke-username> export MKE_PASSWORD=<mke-password> export MKE_HOST=<mke-fqdn-or-ip-address> AUTHTOKEN=$(curl --silent --insecure --data '{"username":"'$MKE_USERNAME'","password":"'$MKE_PASSWORD'"}' https://$MKE_HOST/auth/login | jq --raw-output .auth_token) curl --silent --insecure -X GET "https://$MKE_HOST/api/ucp/config-toml" -H "accept: application/toml" -H "Authorization: Bearer $AUTHTOKEN" > mke-config.toml
In the
cluster_config
section of the MKE 3 configuration file, check the setting of thecalico_kdd
parameter. If it is set totrue
, skip the remaining steps. Otherwise, edit the setting totrue
.Apply the modified MKE 3 configuration file:
$ curl --silent --insecure -X PUT -H "accept: application/toml" -H "Authorization: Bearer $AUTHTOKEN" --upload-file 'mke-config.toml' https://$MKE_HOST/api/ucp/config-toml
On completion, the following confirmation displays:
{"message":"Calico datastore upgrade from etcd to kdd successful"}
- The conversion of the Calico datastore from etcd to KDD typically takes about 20 seconds per node, depending on the size of the cluster.
- According to Tigera, the conversion to KDD freezes cluster networking, and thus new or replacement pods are not able to start. Existing workloads, however, continue to run and their network connectivity is not impacted.
- The steps above must be completed as a standalone procedure before beginning the MKE4k upgrade process. The upgrade itself will be covered in the following sections.
- If your MKE 3 deployment uses an unmanaged CNI, this upgrade path is not currently supported.
- Support for unmanaged CNIs will be introduced in a future version of MKE. In particular, Calico Enterprise employs Kubernetes as Calico Datastore, and thus the steps detailed herein are not required.
Last updated on