mirror of https://github.com/istio/istio.io.git
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:
parent
510ac23adf
commit
a5493c717e
|
@ -12,36 +12,53 @@ for the Kubernetes environment.
|
|||
|
||||
## Overview
|
||||
|
||||
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.
|
||||
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.
|
||||
|
||||
## Application setup
|
||||
|
||||
In the following steps, we assume that the Istio components are installed and
|
||||
upgraded in the same namespace ISTIO\_NAMESPACE.
|
||||
In the following steps, we assume that the Istio components are installed and upgraded in the the `istio-system` namespace.
|
||||
|
||||
## Tasks
|
||||
|
||||
### 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
|
||||
control plane components. It can be done by simply applying the new version
|
||||
yaml file directly, e.g.
|
||||
control plane components.
|
||||
|
||||
First, generate the desired istio control plane yaml file, e.g.
|
||||
|
||||
```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)
|
||||
to generate a customized Istio deployment, please use the customized yaml files
|
||||
generated by Helm instead of the standard installation yamls.
|
||||
|
||||
The rolling update process will upgrade all deployments and configmaps to the
|
||||
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.
|
||||
Second, simply apply the new version of the desired istio control plane yaml file directly, e.g.
|
||||
|
||||
```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
|
||||
|
||||
|
|
Loading…
Reference in New Issue