How to upgrade istio 1.4.3 to latest with zero downtime - upgrade

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.
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

can you point out any link to documentation apart from what is mentioned in istio website
https://istio.io has the most comprehensive information on the topic.
There are some prerequisites for the Istio upgrade as well.
- Istio version 1.4.4 or higher is installed.
- Your Istio installation was installed using istioctl.
It looks like your Istio version is a tiny step below minimum supported one :)
what is the best way to do this upgrade,
Usually it is recommended to go 1.4 --> 1.5 and only then 1.5 --> 1.6.
I have found the following document that describes an "experimental feature, which is intended for evaluation purposes only".
But the minimal version for it is 1.3.3 or higher, which might do the trick for you.
I hope that helps.

Related

How update kubernetes v1.10.8 and kismatic v1.12.0 to last with kubeadm

Kubernetes (v1.10.8) installed on my cloud by kismatic (v1.12.0). How I can update kubernetes to the latest version with kubeadm?
With such version difference - we currently have v1.23 (see official supported releases) - I would consider creating the cluster from the beginning.
If this is not possible, you should upgrade them step by step (from version to version). Here you can find guide that will help to upgrade kubeadm clusters.
A link to older versions you can find here, but
NOTE:
Kubernetes v1.19 documentation is no longer actively maintained. The version you are currently viewing is a static snapshot.
However, you have to have in mind that upgrading through so many versions can cause other issues, so I recommend using the first option.

How to rollback Istio to the old control plane, instead of completing the canary upgrade?

We were doing a test on Canary upgrade of our Istio setup from 1.7.3 to 1.8.6 version.
So we installed canary version 1-8-6 for the istio controlplane and we mapped one namespace to the upgraded version. We tested the application and we were getting 200 response.
Everything was working as expected till this point. So in order to try a rollback, we just went to the document but the steps are not clear enough regarding the rollback.
What is the method to reinstall the gateway here? We used istioctl with overlay and default profile for v1.7.3 installation. So, how to reinstall the gatway?
After uninstalling the canary version, the ingress gateway pods got removed and our application got down with a 500 error.
So would like to clear about the exact process to rollback from canary version to previous installed version.
But due to some issues, we want to rollback to previous version.
You should not do
istioctl x uninstall --revision=canary
if you successfully upgraded. This command should only be used if you decided to stop upgrading in the middle of the process, and want to go back.
To downgrade to a lower version of Istio you should use
istioctl upgrade. Steps are identical to actual upgrade procedure, you just have to use istioctl binary corresponding to a lower version.
You can find more in the docs.
If you still want to go with istioctl x uninstall, and to answer your question:
reinstall the gateway(s) for the previous revision manually
means install your gateways the same way you did when deploying Istio for the first time. If you used the default configuration, and did not create any custom gateways, you can just use yaml files that come with the installation files of lower version.

Upgrading grafana v4 to v5 - or should skip and go straight to v7?

Playing catch up with Grafana versions, (Kubernetes v1.16.15 clusters)
Currently running in PRODUCTION is very out of date (v4)
I'm only upgrading now, and refactoring all my configs for the "new" provisioning.
Should I just upgrade to v5 and release in PROD, and then incrementally upgrade again to v6?
or skip v5 just straight to v7?
According to the official docs there are some functions/solutions that went deprecated from one version to another. You should take a look when upgrading to make sure that you are ready for it.
Other than that, there are two ways to get your Grafana to v7:
Step by step upgrade:
Backup Database
Backup Grafana configuration file (i.e grafana.ini)
Perform the update/upgrade depending on the chosen method.
If that won't work, you can also do a fresh install on top of an existing one or remove the current version, install the latest one and than check grafana.ini file.
If you choose the 1st option than please notice that it is considered safer to upgrade one major version at the time. Also, the database/configuration backup is always recommended.
EDIT:
If you are using Grafana Community Kubernetes Helm Charts than notice that Upgrading an existing Release to a new major version requires the Helm v3 (>= 3.1.0) starting from Grafana v6.0.0.
Thanks #Wytrzymały Wiktor
I'm taking the "safe route" upgrading v4->v5 first. New functions and configuration change impacts are too great (as I said system is very out of date!)
Re-factoring all my helm charts, and getting old dashboards re-imported to v5 DB,and backing up everything as you advise.
v5 will be released to PROD users, and then will start looking at v6 upgrade soon after.

How to update kubernetes-dashboard with kubespray

I have no idea how to update my kubernetes-dashboard, its currently version 1.10.2 but i need to update it to Beta 2.0 v8. I'm fairly new to kubernetes, does anyone know how to update? I used kubespray to set up the clusters
You can find all the information in the repository.
Pay attention to compatibility, version v2.0.0-beta8 only works with kubernetes > 1.16
I had issues in just moving towards a 2.x.x release as KUbespray creates ressources templated from kubernetes apps role which does not fully match anymore. We disabled the dashboard install in kubespray and just installed in our ansible rollout by the official docs which is fine. Same for helm 3 btw.

Kubernetes 1.3 centos manual install

I am trying to get kubernetes 1.3 intalled on my centos7 environment. Have spent a terrifying amount of time looking at every doc/guide/tutorial out there, and unfortunately they are all a combination of outdated versions or missing instructions.
The two biggest issues:
the RPM package is out of date. it pulls down 1.2, not 1.3
which means i need to figure out how to install from source/tar, but i cannot find any good documentation out there on how to do that manually on centos7.
I have gotten it work installing 1.2, but have failed trying to upgrade 1.2 to 1.3 using the 1.3 tar.
Any help would be appreciated!
Centos RPMs are maintained by volunteers, and it seems nobody has volunteered to build a 1.3 RPM. The 1.2 RPM was generated by https://github.com/coolsvap. You could try mailing him and asking him to make a 1.3 rpm.
The way you upgrade depends on which kubernetes guide you followed to setup your kubernetes cluster initially. I'm not sure how it works on Centos guide.
I just found this guide http://kubernetes.io/docs/getting-started-guides/kubeadm/ it mentions Kubernetes 1.4, so since this is a most recent version at the time of writing this post, this might be what you need.