Upgrade Cluster
You have the option to upgrade the IOMesh cluster either online or offline. Before proceeding, consider the following:
- Upgrade is not supported if the Kubernetes cluster has only one meta pod or one chunk pod.
- Due to the limitations of the Kubernetes CRD upgrade mechanism, the IOMesh cluster upgraded to this release from 0.11.1 cannot run on the Kubernetes cluster of version 1.25 or above.
NOTE: There might be temporary I/O latency fluctuations during the upgrade.
Upgrade from 0.11.1 to 1.0.1
Delete the default StorageClass.
This release of IOMesh has a different default StorageClass with updated parameters compared to the previous version. You just need to delete the old one and any PVC using it will not be impacted.
kubectl delete sc iomesh-csi-driver
Temporarily disable IOMesh Webhook to avoid upgrade failure. Once the upgrade is successful, it will be automatically enabled again.
kubectl delete Validatingwebhookconfigurations iomesh-validating-webhook-configuration
Install the CRD of IOMesh 1.0.1.
kubectl apply -f https://iomesh.run/config/crd/iomesh.com_blockdevicemonitors.yaml
Get the new fields and values added in IOMesh 1.0.1.
wget https://iomesh.run/config/merge-values/v1.0.1.yaml -O merge-values.yaml
Edit the YAML file
merge-values.yaml
. Set the value of theiomesh.edition
field to match the edition specified for the previous version of IOMesh.iomesh:
# Specify the IOMesh edition, including "enterprise" and "community". If left blank, the community edition will be installed.
edition: ""Upgrade the IOMesh cluster, which will merge new fields and values while keeping existing ones. Then wait for a few minutes till all pods are running.
helm upgrade --namespace iomesh-system iomesh iomesh/iomesh --version v1.0.1 --reuse-values -f merge-values.yaml
Verify that all pods are in
Running
state. If so, then IOMesh has been successfully upgraded.watch kubectl get pod --namespace iomesh-system
Delete the default StorageClass.
This release of IOMesh has a different default StorageClass with updated parameters compared to the previous version. You just need to delete the old one and any PVC using it will not be impacted.
kubectl delete sc iomesh-csi-driver
Temporarily disable IOMesh Webhook to avoid upgrade failure. Once the upgrade is successful, it will be automatically enabled again.
kubectl delete Validatingwebhookconfigurations iomesh-validating-webhook-configuration
Download IOMesh Offline Installation Package on each worker node and the master node. Then run the following command to unpack the installation package on each worker node and the master node.
Make sure to replace
<VERSION>
withv1.0.1
and<ARCH>
based on your CPU architecture. Then refer to Custom Offline Installation to load the IOMesh image on each worker node and the master node.- Hygon x86_64:
hygon-amd64
- Intel x86_64:
amd64
- Kunpeng AArch64:
arm64
tar -xf iomesh-offline-<VERSION>-<ARCH>.tgz && cd iomesh-offline
- Hygon x86_64:
Install the CRD of IOMesh 1.0.1.
kubectl apply -f ./configs/iomesh.com_blockdevicemonitors.yaml
Edit the YAML file
merge-values.yaml
located in the directoryiomesh-offline/configs/
. Set the value of theiomesh.edition
field to match the edition specified for the previous version of IOMesh.iomesh:
# Specify the IOMesh edition, including "enterprise" and "community". If left blank, the community edition will be installed.
edition: ""Upgrade the IOMesh cluster, which will merge new fields and values while keeping existing ones. Then wait for a few minutes till all pods are running.
./helm upgrade --namespace iomesh-system iomesh ./charts/iomesh --reuse-values -f ./configs/merge-values.yaml
Verify that all pods are in
Running
state. If so, then IOMesh has been successfully upgraded.watch kubectl get pod --namespace iomesh-system
Upgrade from 1.0.0 to 1.0.1
Temporarily disable IOMesh Webhook to avoid upgrade failure. Once the upgrade is successful, it will be automatically enabled again.
kubectl delete Validatingwebhookconfigurations iomesh-validating-webhook-configuration
Upgrade the IOMesh cluster, which will keep existing fields and values. Then wait for a few minutes till all pods are running.
helm upgrade --namespace iomesh-system iomesh iomesh/iomesh --version v1.0.1 --reuse-values -f merge-values.yaml
Verify that all pods are in
Running
state. If so, then IOMesh has been successfully upgraded.watch kubectl get pod --namespace iomesh-system
Temporarily disable IOMesh Webhook to avoid upgrade failure. Once the upgrade is successful, it will be automatically enabled again.
kubectl delete Validatingwebhookconfigurations iomesh-validating-webhook-configuration
Download IOMesh Offline Installation Package on each worker node and the master node. Then run the following command to unpack the installation package on each worker node and the master node.
Make sure to replace
<VERSION>
withv1.0.1
and<ARCH>
based on your CPU architecture. Then refer to Custom Offline Installation to load the IOMesh image on each worker node and the master node.- Hygon x86_64:
hygon-amd64
- Intel x86_64:
amd64
- Kunpeng AArch64:
arm64
tar -xf iomesh-offline-<VERSION>-<ARCH>.tgz && cd iomesh-offline
- Hygon x86_64:
Upgrade the IOMesh cluster, which will merge new fields and values while keeping existing ones. Then wait for a few minutes till all pods are running.
./helm upgrade --namespace iomesh-system iomesh ./charts/iomesh --reuse-values -f ./configs/merge-values.yaml
Verify that all pods are in the
Running
state. If so, then IOMesh has been successfully upgraded.watch kubectl get pod --namespace iomesh-system