adding minimal istio doc (#2349)

* adding minimal istio doc

* fix spell error

* address steve comment

* address steve comment

* change to 2.10 per discussion

* fix CI lint errors

* remove aliases

* fix broken link

* fix link

* fix link

* address yossi's good catches!
This commit is contained in:
Lin Sun 2018-08-28 14:02:55 -04:00 committed by GitHub
parent b3e0ebb409
commit b875d07075
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 154 additions and 34 deletions

View File

@ -47,7 +47,7 @@ At a high level, Mixer provides:
Beyond these purely functional aspects, Mixer also has [reliability and scalability](#reliability-and-latency) benefits as outlined below. Beyond these purely functional aspects, Mixer also has [reliability and scalability](#reliability-and-latency) benefits as outlined below.
Policy enforcement and telemetry collection are entirely driven from configuration. Policy enforcement and telemetry collection are entirely driven from configuration.
It's possible to [completely disable these features](/docs/setup/kubernetes/helm-install/#customization-example-traffic-management-minimal-set) It's possible to [completely disable these features](/docs/setup/kubernetes/minimal-install/)
and avoid the need to run the Mixer component in an Istio deployment. and avoid the need to run the Mixer component in an Istio deployment.
## Adapters ## Adapters

View File

@ -28,3 +28,37 @@ If you wish to take advantage of Istio's L7 traffic management
capabilities, in addition to obtaining in-depth telemetry and performing capabilities, in addition to obtaining in-depth telemetry and performing
distributed request tracing, deploy Istio Pilot and Mixer. In addition, distributed request tracing, deploy Istio Pilot and Mixer. In addition,
disable policy enforcement at the Mixer. disable policy enforcement at the Mixer.
## Customization Example: Traffic Management And Security Minimal Set
Istio has a rich feature set, but you may only want to use a subset of these. For instance, you might be only interested in installing the minimum necessary services to support traffic management and security functionality.
This example shows how to install the minimal set of components necessary to use [traffic management](/docs/tasks/traffic-management/) features.
Execute the following command to install the Pilot and Citadel:
{{< text bash >}}
$ helm install install/kubernetes/helm/istio --name istio --namespace istio-system \
--set ingress.enabled=false \
--set gateways.istio-ingressgateway.enabled=false \
--set gateways.istio-egressgateway.enabled=false \
--set galley.enabled=false \
--set sidecarInjectorWebhook.enabled=false \
--set mixer.enabled=false \
--set prometheus.enabled=false \
--set global.proxy.envoyStatsd.enabled=false
{{< /text >}}
Ensure the `istio-pilot-*` and `istio-citadel-*` Kubernetes pods are deployed and their containers are up and running:
{{< text bash >}}
$ kubectl get pods -n istio-system
NAME READY STATUS RESTARTS AGE
istio-citadel-b48446f79-wd4tk 1/1 Running 0 1m
istio-pilot-58c65f74bc-2f5xn 2/2 Running 0 1m
{{< /text >}}
With this minimal set you can install your own application and [configure request routing](/docs/tasks/traffic-management/request-routing/). You will need to [manually inject the sidecar](/docs/setup/kubernetes/sidecar-injection/#manual-sidecar-injection).
[Installation Options](/docs/reference/config/installation-options/) has the full list of options allowing you to tailor the Istio installation to your needs. Before you override the default value with `--set` in `helm install`, please check the configurations for the option in `install/kubernetes/helm/istio/values.yaml` and uncomment the commented context if needed.

View File

@ -92,39 +92,6 @@ to manage the lifecycle of Istio.
$ helm install install/kubernetes/helm/istio --name istio --namespace istio-system $ helm install install/kubernetes/helm/istio --name istio --namespace istio-system
{{< /text >}} {{< /text >}}
## Customization Example: Traffic Management Minimal Set
Istio has a rich feature set, but you may only want to use a subset of these. For instance, you might be only interested in installing the minimum necessary to support traffic management functionality.
This example shows how to install the minimal set of components necessary to use [traffic management](/docs/tasks/traffic-management/) features.
Execute the following command to install the Pilot and Citadel:
{{< text bash >}}
$ helm install install/kubernetes/helm/istio --name istio --namespace istio-system \
--set ingress.enabled=false \
--set gateways.istio-ingressgateway.enabled=false \
--set gateways.istio-egressgateway.enabled=false \
--set galley.enabled=false \
--set sidecarInjectorWebhook.enabled=false \
--set mixer.enabled=false \
--set prometheus.enabled=false \
--set global.proxy.envoyStatsd.enabled=false
{{< /text >}}
Ensure the `istio-pilot-*` and `istio-citadel-*` Kubernetes pods are deployed and their containers are up and running:
{{< text bash >}}
$ kubectl get pods -n istio-system
NAME READY STATUS RESTARTS AGE
istio-citadel-b48446f79-wd4tk 1/1 Running 0 1m
istio-pilot-58c65f74bc-2f5xn 2/2 Running 0 1m
{{< /text >}}
With this minimal set you can install your own application and [configure request routing](/docs/tasks/traffic-management/request-routing/) for instance. You will need to [manually inject the sidecar](/docs/setup/kubernetes/sidecar-injection/#manual-sidecar-injection).
[Installation Options](/docs/reference/config/installation-options/) has the full list of options allowing you to tailor the Istio installation to your needs. Before you override the default value with `--set` in `helm install`, please check the configurations for the option in `install/kubernetes/helm/istio/values.yaml` and uncomment the commented context if needed.
## Uninstall ## Uninstall
* For option 1, uninstall using `kubectl`: * For option 1, uninstall using `kubectl`:

View File

@ -0,0 +1,119 @@
---
title: Minimal Istio Installation
description: Install minimal Istio using Helm.
weight: 31
keywords: [kubernetes,helm, minimal]
icon: /img/helm.svg
---
Quick start instructions for the minimal setup and configuration of Istio using Helm.
This minimal install provides traffic management features of Istio.
## Prerequisites
Refer to the [prerequisites](/docs/setup/kubernetes/quick-start/#prerequisites) described in the Quick Start guide.
## Installation steps
1. If using a Helm version prior to 2.10.0, install Istio's [Custom Resource Definitions](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/#customresourcedefinitions)
via `kubectl apply`, and wait a few seconds for the CRDs to be committed in the kube-apiserver:
{{< text bash >}}
$ kubectl apply -f install/kubernetes/helm/istio/templates/crds.yaml
{{< /text >}}
1. Choose one of the following two
**mutually exclusive** options described below.
### Option 1: Install with Helm via `helm template`
1. Render Istio's core components to a Kubernetes manifest called `istio.yaml`:
{{< text bash >}}
$ helm template install/kubernetes/helm/istio --name istio --namespace istio-system \
--set security.enabled=false \
--set ingress.enabled=false \
--set gateways.istio-ingressgateway.enabled=false \
--set gateways.istio-egressgateway.enabled=false \
--set galley.enabled=false \
--set sidecarInjectorWebhook.enabled=false \
--set mixer.enabled=false \
--set prometheus.enabled=false \
--set global.proxy.envoyStatsd.enabled=false \
--set pilot.sidecar=false > $HOME/istio-minimal.yaml
{{< /text >}}
1. Install the Pilot component via the manifest:
{{< text bash >}}
$ kubectl create namespace istio-system
$ kubectl apply -f $HOME/istio-minimal.yaml
{{< /text >}}
### Option 2: Install with Helm and Tiller via `helm install`
This option allows Helm and
[Tiller](https://github.com/kubernetes/helm/blob/master/docs/architecture.md#components)
to manage the lifecycle of Istio.
1. If a service account has not already been installed for Tiller, install one:
{{< text bash >}}
$ kubectl apply -f install/kubernetes/helm/helm-service-account.yaml
{{< /text >}}
1. Install Tiller on your cluster with the service account:
{{< text bash >}}
$ helm init --service-account tiller
{{< /text >}}
1. Install Istio:
{{< text bash >}}
$ helm install install/kubernetes/helm/istio --name istio-minimal --namespace istio-system \
--set security.enabled=false \
--set ingress.enabled=false \
--set gateways.istio-ingressgateway.enabled=false \
--set gateways.istio-egressgateway.enabled=false \
--set galley.enabled=false \
--set sidecarInjectorWebhook.enabled=false \
--set mixer.enabled=false \
--set prometheus.enabled=false \
--set global.proxy.envoyStatsd.enabled=false \
--set pilot.sidecar=false
{{< /text >}}
1. Ensure the `istio-pilot-*` Kubernetes pod is deployed and its container is up and running:
{{< text bash >}}
$ kubectl get pods -n istio-system
NAME READY STATUS RESTARTS AGE
istio-pilot-58c65f74bc-2f5xn 1/1 Running 0 1m
{{< /text >}}
## Uninstall
* For option 1, uninstall using `kubectl`:
{{< text bash >}}
$ kubectl delete -f $HOME/istio-minimal.yaml
{{< /text >}}
* For option 2, uninstall using Helm:
{{< text bash >}}
$ helm delete --purge istio-minimal
{{< /text >}}
If your Helm version is less than 2.10.0, then you need to manually cleanup extra job resource before redeploy new version of Istio chart:
{{< text bash >}}
$ kubectl -n istio-system delete job --all
{{< /text >}}
* If desired, delete the CRDs:
{{< text bash >}}
$ kubectl delete -f install/kubernetes/helm/istio/templates/crds.yaml -n istio-system
{{< /text >}}