update instruction for control plane (#1331)

* update instruction for control plane

data plane will be in a separate PR as it needs more testing

* address typo and guang's feedback

* fix another typo

* fix circle ci test
This commit is contained in:
Lin Sun 2018-05-25 19:53:28 -04:00 committed by istio-bot
parent 510ac23adf
commit a5493c717e
1 changed files with 30 additions and 13 deletions

View File

@ -12,36 +12,53 @@ for the Kubernetes environment.
## Overview ## Overview
This guide describes how to upgrade an existing Istio deployment (including This guide describes how to upgrade an existing Istio deployment (including both control plane and sidecar proxy) to a new release of Istio. The upgrade process could involve new binaries as well as other changes like configuration and API schemas. The upgrade process may involve some service downtime. To minimize the service downtime, please ensure your istio control plane components and your application are highly available with multiple replicas.
both control plane and sidecar proxy) to a new release of Istio. The upgrade
process could involve new binaries as well as other changes like configuration
and API schemas. The upgrade process may involve some service downtime.
## Application setup ## Application setup
In the following steps, we assume that the Istio components are installed and In the following steps, we assume that the Istio components are installed and upgraded in the the `istio-system` namespace.
upgraded in the same namespace ISTIO\_NAMESPACE.
## Tasks ## Tasks
### Control plane upgrade ### Control plane upgrade
The Istio control plane components include: Citadel, Ingress, Pilot, Mixer, and The Istio control plane components include: Citadel, Ingress gateway, Egress gateway, Pilot, Policy, Telemetry and
Sidecar injector. We can use Kubernetes rolling update mechanism to upgrade the Sidecar injector. We can use Kubernetes rolling update mechanism to upgrade the
control plane components. It can be done by simply applying the new version control plane components.
yaml file directly, e.g.
First, generate the desired istio control plane yaml file, e.g.
```command ```command
$ kubectl apply -f istio.yaml (or istio-auth.yaml) helm template --set global.proxy.image=proxy \
--values install/kubernetes/helm/istio/values-istio.yaml \
install/kubernetes/helm/istio >> install/kubernetes/istio.yaml
```
or
```command
helm template --set global.proxy.image=proxy \
--values install/kubernetes/helm/istio/values-istio-auth.yaml \
install/kubernetes/helm/istio >> install/kubernetes/istio-auth.yaml
``` ```
> If you have used [Helm](https://istio.io/docs/setup/kubernetes/helm.html) > If you have used [Helm](https://istio.io/docs/setup/kubernetes/helm.html)
to generate a customized Istio deployment, please use the customized yaml files to generate a customized Istio deployment, please use the customized yaml files
generated by Helm instead of the standard installation yamls. generated by Helm instead of the standard installation yamls.
The rolling update process will upgrade all deployments and configmaps to the Second, simply apply the new version of the desired istio control plane yaml file directly, e.g.
new version. If there is any issue with the new control plane, you can rollback
the changes either by applying the old version yaml files. ```command
$ kubectl apply -f install/kubernetes/istio.yaml
```
or
```command
$ kubectl apply -f install/kubernetes/istio-auth.yaml
```
The rolling update process will upgrade all deployments and configmaps to the new version. After this process finishes, your Istio control plane should be updated to the new version and the control plane itself should be using the new Envoy v2 proxy. Your existing application should continue to work without any change, using the Envoy v1 proxy and the v1alpha1 route rules. In any case if there is any critical issue with the new control plane, you can simply rollback the changes either by applying the old version yaml files.
### Sidecar upgrade ### Sidecar upgrade