Upgrade istio 1.4.3 to latest with zero downtime

I am newly hired engineer who started working with istio recently. My application is currently running on istio 1.4.3 and having issues when i tried to upgrade to latest using istioctl upgrade where it complained

Below are the steps i tried

  1. Verified the versions using istioctl version and saw that control plane and data plane are running on 1.4.3 whereas client version is 1.5.1 (the version i planned to upgrade).

  2. Tried istioctl upgrade and seen a message “cannot upgrade because of mismatch of versions in istio components”.

  3. As it was my dev environment, i decided to reinstall using istioctl manifest apply --profile default

  4. Above step cost me a lot of time, because i lost all the settings related to ingress gateway connected to AWS ALB, instead ingress controller created a classic load balancer which is not part of our previous set-up.

  5. I also lost setting related to prometheus, grafana, kiali.

  6. Now i am planning upgrade my prod without messing the current settings, please suggest a correct way to upgrade istio to latest version with zero downtime.

what is the best way to do this upgrade, can you point out any link to documentation apart from what is mentioned in istio website ? Help is much appreciated