Upgrade Cluster
You have the option to upgrade the IOMesh cluster from version 0.11.1 to 1.0.0 either online or offline. Before proceeding, consider the following:
- Upgrade is not supported if the Kubernetes cluster has only 1 meta pod or 1 chunk pod.
- Due to the limitations of the Kubernetes CRD upgrade mechanism, the IOMesh cluster upgraded to 1.0.0 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.
Procedure
Delete the default StorageClass.
IOMesh 1.0.0 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.0.
kubectl apply -f https://iomesh.run/config/crd/iomesh.com_blockdevicemonitors.yaml
Get the new fields and values added in IOMesh 1.0.0.
wget https://iomesh.run/config/merge-values/v1.0.0.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.0 --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.
IOMesh 1.0.0 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. Make sure to replace
<VERSION>
withv1.0.0
and<ARCH>
based on your CPU architecture.- 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.0.
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