diff --git a/.spelling b/.spelling index c59abc3429..a809b862fc 100644 --- a/.spelling +++ b/.spelling @@ -351,6 +351,7 @@ natively netmask networking.istio.io nginx +NLBs nodePorts non-sandboxed normalization diff --git a/content/en/_index.md b/content/en/_index.md index f72c42393c..1fae01e6ae 100644 --- a/content/en/_index.md +++ b/content/en/_index.md @@ -106,7 +106,7 @@ description: Connect, secure, control, and observe services.
diff --git a/content/en/about/feature-stages/index.md b/content/en/about/feature-stages/index.md index 555dfb9b5c..32387a4c41 100644 --- a/content/en/about/feature-stages/index.md +++ b/content/en/about/feature-stages/index.md @@ -92,20 +92,20 @@ The 'Authorization (RBAC)' runtime is considered Beta. However, its API is stil | Feature | Phase |-------------------|------------------- -| [Kubernetes: Envoy Installation and Traffic Interception](/docs/setup/kubernetes/) | Stable -| [Kubernetes: Istio Control Plane Installation](/docs/setup/kubernetes/) | Stable +| [Kubernetes: Envoy Installation and Traffic Interception](/docs/setup/) | Stable +| [Kubernetes: Istio Control Plane Installation](/docs/setup/) | Stable | [Attribute Expression Language](/docs/reference/config/policy-and-telemetry/expression-language/) | Stable | Mixer Out-of-Process Adapter Authoring Model | Beta -| [Helm](/docs/setup/kubernetes/install/helm/) | Beta -| [Multicluster Mesh over VPN](/docs/setup/kubernetes/install/multicluster/) | Alpha -| [Kubernetes: Istio Control Plane Upgrade](/docs/setup/kubernetes/) | Beta -| [Consul Integration](/docs/setup/consul/quick-start/) | Alpha +| [Helm](/docs/setup/install/helm/) | Beta +| [Multicluster Mesh over VPN](/docs/setup/install/multicluster/) | Alpha +| [Kubernetes: Istio Control Plane Upgrade](/docs/setup/) | Beta +| Consul Integration | Alpha | Basic Configuration Resource Validation | Beta | Configuration Processing with Galley | Beta | [Mixer Self Monitoring](/faq/mixer/#mixer-self-monitoring) | Beta | [Custom Mixer Build Model](https://github.com/istio/istio/wiki/Mixer-Compiled-In-Adapter-Dev-Guide) | deprecated | [Out of Process Mixer Adapters (gRPC Adapters)](https://github.com/istio/istio/wiki/Mixer-Out-Of-Process-Adapter-Dev-Guide) | Beta -| [Istio CNI plugin](/docs/setup/kubernetes/additional-setup/cni/) | Alpha +| [Istio CNI plugin](/docs/setup/additional-setup/cni/) | Alpha | IPv6 support for Kubernetes | Alpha | [Distroless base images for Istio](/docs/ops/security/harden-docker-images/) | Alpha diff --git a/content/en/blog/2017/0.2-announcement/index.md b/content/en/blog/2017/0.2-announcement/index.md index 2b869562b6..a5261d99c4 100644 --- a/content/en/blog/2017/0.2-announcement/index.md +++ b/content/en/blog/2017/0.2-announcement/index.md @@ -37,7 +37,7 @@ you easily integrate your solution with Istio. * _Mesh expansion_: Istio mesh can now span services running outside of Kubernetes - like those running in virtual machines while enjoying benefits such as automatic mutual TLS authentication, traffic management, telemetry, and policy enforcement across the mesh. -* _Running outside Kubernetes_: We know many customers use other service registry and orchestration solutions like [Consul/Nomad](/docs/setup/consul/quick-start/) and Eureka. Istio Pilot can now run standalone outside Kubernetes, consuming information from these systems, and manage the Envoy fleet in VMs or containers. +* _Running outside Kubernetes_: We know many customers use other service registry and orchestration solutions like Consul/Nomad and Eureka. Istio Pilot can now run standalone outside Kubernetes, consuming information from these systems, and manage the Envoy fleet in VMs or containers. ## Get involved in shaping the future of Istio diff --git a/content/en/blog/2018/announcing-1.0/index.md b/content/en/blog/2018/announcing-1.0/index.md index 1abd747168..bed7ab5cce 100644 --- a/content/en/blog/2018/announcing-1.0/index.md +++ b/content/en/blog/2018/announcing-1.0/index.md @@ -24,7 +24,7 @@ and [Styra](https://styra.com/) built extensions to our policy enforcement and n Since the 0.8 release we’ve added some important new features and more importantly marked many of our existing features as Beta signaling that they’re ready for production use. This is captured in more detail in the [release notes](/about/notes/1.0/) but it’s worth calling out some highlights -* Multiple Kubernetes clusters can now be [added to a single mesh](/docs/setup/kubernetes/install/multicluster/) and enabling cross-cluster communication and consistent policy enforcement. Multi-cluster support is now Beta. +* Multiple Kubernetes clusters can now be [added to a single mesh](/docs/setup/install/multicluster/) and enabling cross-cluster communication and consistent policy enforcement. Multi-cluster support is now Beta. * Networking APIs that enable fine grained control over the flow of traffic through a mesh are now Beta. Explicitly modeling ingress and egress concerns using Gateways allows operators to [control the network topology](/blog/2018/v1alpha3-routing/) and meet access security requirements at the edge. @@ -35,7 +35,7 @@ Since the 0.8 release we’ve added some important new features and more importa * [Authorization policies](/docs/concepts/security/#authorization) which control access to services are now entirely evaluated locally in Envoy increasing their performance and reliability. -* [Helm chart installation](/docs/setup/kubernetes/install/helm/) is now the recommended install method offering rich customization options to adopt Istio on your terms. +* [Helm chart installation](/docs/setup/install/helm/) is now the recommended install method offering rich customization options to adopt Istio on your terms. * We’ve put a lot of effort into performance including continuous regression testing, large scale environment simulation and targeted fixes. We’re very happy with the results and will share more on this in detail in the coming weeks. diff --git a/content/en/blog/2018/egress-https/index.md b/content/en/blog/2018/egress-https/index.md index daa887a270..4ec3acd496 100644 --- a/content/en/blog/2018/egress-https/index.md +++ b/content/en/blog/2018/egress-https/index.md @@ -20,7 +20,7 @@ HTTPS traffic and describe the pros and cons of each of the options. ## Initial setting -To demonstrate the scenario of consuming an external web service, I start with a Kubernetes cluster with [Istio installed](/docs/setup/kubernetes/install/kubernetes/#installation-steps). Then I deploy +To demonstrate the scenario of consuming an external web service, I start with a Kubernetes cluster with [Istio installed](/docs/setup/install/kubernetes/#installation-steps). Then I deploy [Istio Bookinfo Sample Application](/docs/examples/bookinfo/). This application uses the _details_ microservice to fetch book details, such as the number of pages and the publisher. The original _details_ microservice provides the book details without consulting any external service. @@ -73,7 +73,7 @@ $ kubectl apply -f @samples/bookinfo/networking/virtual-service-details-v2.yaml@ Note that the virtual service relies on a destination rule that you created in the [Apply default destination rules](/docs/examples/bookinfo/#apply-default-destination-rules) section. Access the web page of the application, after -[determining the ingress IP and port](/docs/examples/bookinfo/#determining-the-ingress-ip-and-port). +[determining the ingress IP and port](/docs/examples/bookinfo/#determine-the-ingress-ip-and-port). Oops... Instead of the book details you have the _Error fetching product details_ message displayed: diff --git a/content/en/blog/2018/egress-mongo/index.md b/content/en/blog/2018/egress-mongo/index.md index 3b8670145c..a5b336564e 100644 --- a/content/en/blog/2018/egress-mongo/index.md +++ b/content/en/blog/2018/egress-mongo/index.md @@ -93,7 +93,7 @@ For this task you set up an instance of [MongoDB](https://www.mongodb.com). You ### Initial setting of Bookinfo application -To demonstrate the scenario of using an external database, you start with a Kubernetes cluster with [Istio installed](/docs/setup/kubernetes/install/kubernetes/#installation-steps). Then you deploy the +To demonstrate the scenario of using an external database, you start with a Kubernetes cluster with [Istio installed](/docs/setup/install/kubernetes/#installation-steps). Then you deploy the [Istio Bookinfo sample application](/docs/examples/bookinfo/), [apply the default destination rules](/docs/examples/bookinfo/#apply-default-destination-rules), and [change Istio to the blocking-egress-by-default policy](/docs/tasks/traffic-management/egress/egress-control/#change-to-the-blocking-by-default-policy). @@ -145,7 +145,7 @@ boundary of the service mesh is marked by a dashed line. ### Access the webpage Access the webpage of the application, after -[determining the ingress IP and port](/docs/examples/bookinfo/#determining-the-ingress-ip-and-port). +[determining the ingress IP and port](/docs/examples/bookinfo/#determine-the-ingress-ip-and-port). Since you did not configure the egress traffic control yet, the access to the MongoDB service is blocked by Istio. This is why instead of the rating stars, the message _"Ratings service is currently unavailable"_ is currently diff --git a/content/en/blog/2018/egress-tcp/index.md b/content/en/blog/2018/egress-tcp/index.md index 510faf26c9..7a604a2a52 100644 --- a/content/en/blog/2018/egress-tcp/index.md +++ b/content/en/blog/2018/egress-tcp/index.md @@ -149,7 +149,7 @@ Now you are ready to deploy a version of the Bookinfo application that will use ### Initial setting of Bookinfo application -To demonstrate the scenario of using an external database, you start with a Kubernetes cluster with [Istio installed](/docs/setup/kubernetes/install/kubernetes/#installation-steps). Then you deploy the +To demonstrate the scenario of using an external database, you start with a Kubernetes cluster with [Istio installed](/docs/setup/install/kubernetes/#installation-steps). Then you deploy the [Istio Bookinfo sample application](/docs/examples/bookinfo/), [apply the default destination rules](/docs/examples/bookinfo/#apply-default-destination-rules), and [change Istio to the blocking-egress-by-default policy](/docs/tasks/traffic-management/egress/egress-control/#change-to-the-blocking-by-default-policy). This application uses the `ratings` microservice to fetch @@ -228,7 +228,7 @@ Note that the MySQL database is outside the Istio service mesh, or more precisel ### Access the webpage Access the webpage of the application, after -[determining the ingress IP and port](/docs/examples/bookinfo/#determining-the-ingress-ip-and-port). +[determining the ingress IP and port](/docs/examples/bookinfo/#determine-the-ingress-ip-and-port). You have a problem... Instead of the rating stars, the message _"Ratings service is currently unavailable"_ is currently displayed below each review: diff --git a/content/en/blog/2018/export-logs-through-stackdriver/index.md b/content/en/blog/2018/export-logs-through-stackdriver/index.md index 7ce38c8c0d..12a90af643 100644 --- a/content/en/blog/2018/export-logs-through-stackdriver/index.md +++ b/content/en/blog/2018/export-logs-through-stackdriver/index.md @@ -47,7 +47,7 @@ Common setup for all sinks: 1. Record the ID of the dataset. It will be needed to configure the Stackdriver handler. It would be of the form `bigquery.googleapis.com/projects/[PROJECT_ID]/datasets/[DATASET_ID]` 1. Give [sink’s writer identity](https://cloud.google.com/logging/docs/api/tasks/exporting-logs#writing_to_the_destination): `cloud-logs@system.gserviceaccount.com` BigQuery Data Editor role in IAM. -1. If using [Google Kubernetes Engine](/docs/setup/kubernetes/platform-setup/gke/), make sure `bigquery` [Scope](https://cloud.google.com/sdk/gcloud/reference/container/clusters/create) is enabled on the cluster. +1. If using [Google Kubernetes Engine](/docs/setup/platform-setup/gke/), make sure `bigquery` [Scope](https://cloud.google.com/sdk/gcloud/reference/container/clusters/create) is enabled on the cluster. #### Google Cloud Storage (GCS) @@ -62,7 +62,7 @@ Common setup for all sinks: 1. Recode the ID of the topic. It will be needed to configure Stackdriver. It would be of the form `pubsub.googleapis.com/projects/[PROJECT_ID]/topics/[TOPIC_ID]` 1. Give [sink’s writer identity](https://cloud.google.com/logging/docs/api/tasks/exporting-logs#writing_to_the_destination): `cloud-logs@system.gserviceaccount.com` Pub/Sub Publisher role in IAM. -1. If using [Google Kubernetes Engine](/docs/setup/kubernetes/platform-setup/gke/), make sure `pubsub` [Scope](https://cloud.google.com/sdk/gcloud/reference/container/clusters/create) is enabled on the cluster. +1. If using [Google Kubernetes Engine](/docs/setup/platform-setup/gke/), make sure `pubsub` [Scope](https://cloud.google.com/sdk/gcloud/reference/container/clusters/create) is enabled on the cluster. ### Setting up Stackdriver diff --git a/content/en/blog/2018/incremental-traffic-management/index.md b/content/en/blog/2018/incremental-traffic-management/index.md index 543ce19a35..f5a8540a61 100644 --- a/content/en/blog/2018/incremental-traffic-management/index.md +++ b/content/en/blog/2018/incremental-traffic-management/index.md @@ -44,9 +44,9 @@ Fortunately, a standard Istio deployment already includes a [Gateway](/docs/conc ## In action: traffic routing with Istio -A simple way to see this type of approach in action is to first setup your Kubernetes environment using the [Platform Setup](/docs/setup/kubernetes/platform-setup/) instructions, and then install the **minimal** Istio profile using [Helm](/docs/setup/kubernetes/install/helm/), including only the traffic management components (ingress gateway, egress gateway, Pilot). The following example uses [Google Kubernetes Engine](https://cloud.google.com/gke). +A simple way to see this type of approach in action is to first setup your Kubernetes environment using the [Platform Setup](/docs/setup/platform-setup/) instructions, and then install the **minimal** Istio profile using [Helm](/docs/setup/install/helm/), including only the traffic management components (ingress gateway, egress gateway, Pilot). The following example uses [Google Kubernetes Engine](https://cloud.google.com/gke). -First, setup and configure [GKE](/docs/setup/kubernetes/platform-setup/gke/): +First, setup and configure [GKE](/docs/setup/platform-setup/gke/): {{< text bash >}} $ gcloud container clusters create istio-inc --zone us-central1-f @@ -56,7 +56,7 @@ $ kubectl create clusterrolebinding cluster-admin-binding \ --user=$(gcloud config get-value core/account) {{< /text >}} -Next, [install Helm](https://helm.sh/docs/securing_installation/) and [generate a minimal Istio install](/docs/setup/kubernetes/install/helm/) -- only traffic management components: +Next, [install Helm](https://helm.sh/docs/securing_installation/) and [generate a minimal Istio install](/docs/setup/install/helm/) -- only traffic management components: {{< text bash >}} $ helm template install/kubernetes/helm/istio \ diff --git a/content/en/blog/2018/soft-multitenancy/index.md b/content/en/blog/2018/soft-multitenancy/index.md index 86f8657a78..762ec82573 100644 --- a/content/en/blog/2018/soft-multitenancy/index.md +++ b/content/en/blog/2018/soft-multitenancy/index.md @@ -75,7 +75,7 @@ istio-system1 istio-mixer-7d4f7b9968-66z44 3/3 Running 0 istio-system1 istio-pilot-5bb6b7669c-779vb 2/2 Running 0 15d {{< /text >}} -The Istio [sidecar](/docs/setup/kubernetes/additional-setup/sidecar-injection/) +The Istio [sidecar](/docs/setup/additional-setup/sidecar-injection/) and [addons](/docs/tasks/telemetry/), if required, manifests must also be deployed to match the configured `namespace` in use by the tenant's Istio control plane. diff --git a/content/en/blog/2019/announcing-1.1/index.md b/content/en/blog/2019/announcing-1.1/index.md index 8a2eb42319..65d6e9673e 100644 --- a/content/en/blog/2019/announcing-1.1/index.md +++ b/content/en/blog/2019/announcing-1.1/index.md @@ -41,7 +41,7 @@ We listened to the community and improved defaults for traffic control and policy. We introduced a new component called [Galley](/docs/concepts/what-is-istio/#galley). Galley validates that sweet, sweet YAML, reducing the chance of configuration errors. Galley will also be -instrumental in [multicluster setups](/docs/setup/kubernetes/install/multicluster/), +instrumental in [multicluster setups](/docs/setup/install/multicluster/), gathering service discovery information from each Kubernetes cluster. We are also supporting additional multicluster topologies including [shared control plane](/docs/concepts/multicluster-deployments/#shared-control-plane-topology) and [dedicated control plane](/docs/concepts/multicluster-deployments/#dedicated-control-plane-topology) topologies @@ -68,4 +68,4 @@ us installing and upgrading to the early builds and helping us catch problems before the release. So: now’s the time! Grab 1.1, check out [the updated documentation](/docs/), -[install it](/docs/setup/kubernetes/) and...happy meshing! +[install it](/docs/setup/) and...happy meshing! diff --git a/content/en/blog/2019/egress-traffic-control-in-istio-part-3/index.md b/content/en/blog/2019/egress-traffic-control-in-istio-part-3/index.md index a355685e46..d647cb8f87 100644 --- a/content/en/blog/2019/egress-traffic-control-in-istio-part-3/index.md +++ b/content/en/blog/2019/egress-traffic-control-in-istio-part-3/index.md @@ -146,6 +146,6 @@ In this case, Istio already provides you some benefits even before you start usi [policies](/docs/tasks/policy-enforcement/) and [telemetry](/docs/tasks/telemetry/), applied to traffic between microservices inside the cluster. -So, if you haven't had the chance to work with Istio yet, [install Istio](/docs/setup/kubernetes/install/) on your cluster +So, if you haven't had the chance to work with Istio yet, [install Istio](/docs/setup/install/) on your cluster and check our [egress traffic control tasks](/docs/tasks/traffic-management/egress/) and the tasks for the other [Istio features](/docs/tasks/). We also want to hear from you, please join us at [discuss.istio.io](https://discuss.istio.io). diff --git a/content/en/blog/2019/evolving-istios-apis/index.md b/content/en/blog/2019/evolving-istios-apis/index.md index 08e65ed8bc..07c542bb30 100644 --- a/content/en/blog/2019/evolving-istios-apis/index.md +++ b/content/en/blog/2019/evolving-istios-apis/index.md @@ -49,7 +49,7 @@ Some areas of improvement that we’re working on for upcoming releases include: - Support for routing all traffic by default to constrain routing incrementally - Add a single global flag to enable mutual TLS and encrypt all inter-pod traffic -Oh, and if for some reason you judge a toolbox by the list of CRDs it installs, in Istio 1.2 we cut the number from 54 down to 23. Why? It turns out that if you have a bunch of features, you need to have a way to configure them all. With the improvements we’ve made to our installer, you can now install Istio using a [configuration](/docs/setup/kubernetes/additional-setup/config-profiles/) that works with your adapters. +Oh, and if for some reason you judge a toolbox by the list of CRDs it installs, in Istio 1.2 we cut the number from 54 down to 23. Why? It turns out that if you have a bunch of features, you need to have a way to configure them all. With the improvements we’ve made to our installer, you can now install Istio using a [configuration](/docs/setup/additional-setup/config-profiles/) that works with your adapters. All service meshes and, by extension, Istio seeks to automate complex infrastructure operations, like networking and security. That means there will always be complexity in its APIs, but Istio will always aim to solve the needs of operators, while continuing to evolve the API to provide robust building blocks and prioritize flexibility through role-centric abstractions. diff --git a/content/en/blog/2019/multicluster-version-routing/index.md b/content/en/blog/2019/multicluster-version-routing/index.md index 36da1173a5..b4bb6d6c18 100644 --- a/content/en/blog/2019/multicluster-version-routing/index.md +++ b/content/en/blog/2019/multicluster-version-routing/index.md @@ -36,7 +36,7 @@ running in one cluster, versions `v2` and `v3` running in a second cluster. To start, you'll need two Kubernetes clusters, both running a slightly customized configuration of Istio. * Set up a multicluster environment with two Istio clusters by following the - [dedicated control planes](/docs/setup/kubernetes/install/multicluster/gateways/) instructions. + [dedicated control planes](/docs/setup/install/multicluster/gateways/) instructions. * The `kubectl` command is used to access both clusters with the `--context` flag. Use the following command to list your contexts: @@ -262,7 +262,7 @@ Just like any application, we'll use an Istio gateway to access the `bookinfo` a $ kubectl apply --context=$CTX_CLUSTER1 -f @samples/bookinfo/networking/bookinfo-gateway.yaml@ {{< /text >}} -* Follow the [Bookinfo sample instructions](/docs/examples/bookinfo/#determining-the-ingress-ip-and-port) +* Follow the [Bookinfo sample instructions](/docs/examples/bookinfo/#determine-the-ingress-ip-and-port) to determine the ingress IP and port and then point your browser to `http://$GATEWAY_URL/productpage`. You should see the `productpage` with reviews, but without ratings, because only `v1` of the `reviews` service @@ -270,7 +270,7 @@ is running on `cluster1` and we have not yet configured access to `cluster2`. ## Create a service entry and destination rule on `cluster1` for the remote reviews service -As described in the [setup instructions](/docs/setup/kubernetes/install/multicluster/gateways/#setup-dns), +As described in the [setup instructions](/docs/setup/install/multicluster/gateways/#setup-dns), remote services are accessed with a `.global` DNS name. In our case, it's `reviews.default.global`, so we need to create a service entry and destination rule for that host. The service entry will use the `cluster2` gateway as the endpoint address to access the service. @@ -329,7 +329,7 @@ EOF The address `127.255.0.3` of the service entry can be any arbitrary unallocated IP. Using an IP from the loopback range 127.0.0.0/8 is a good choice. Check out the -[gateway-connected multicluster example](/docs/setup/kubernetes/install/multicluster/gateways/#configure-the-example-services) +[gateway-connected multicluster example](/docs/setup/install/multicluster/gateways/#configure-the-example-services) for more details. Note that the labels of the subsets in the destination rule map to the service entry diff --git a/content/en/blog/2019/performance-best-practices/index.md b/content/en/blog/2019/performance-best-practices/index.md index 4dee12db9c..0f6878924c 100644 --- a/content/en/blog/2019/performance-best-practices/index.md +++ b/content/en/blog/2019/performance-best-practices/index.md @@ -19,9 +19,9 @@ In the [Istio Tools repository](https://github.com/istio/tools/tree/81cc22348059 To accurately measure the performance of a service mesh at scale, it's important to use an [adequately-sized](https://github.com/istio/tools/tree/81cc22348059bb17ad9c2f571018e78780a1bbf5/perf/istio-install#istio-setup) Kubernetes cluster. We test using three worker nodes, each with at least 4 vCPUs and 15 GB of memory. -Then, it's important to use a production-ready Istio **installation profile** on that cluster. This lets us achieve performance-oriented settings such as control plane pod autoscaling, and ensures that resource limits are appropriate for heavy traffic load. The [default](/docs/setup/kubernetes/install/helm/#option-1-install-with-helm-via-helm-template) Istio installation is suitable for most benchmarking use cases. For extensive performance benchmarking, with thousands of proxy-injected services, we also provide [a tuned Istio install](https://github.com/istio/tools/blob/81cc22348059bb17ad9c2f571018e78780a1bbf5/perf/istio-install/values.yaml) that allocates extra memory and CPU to the Istio control plane. +Then, it's important to use a production-ready Istio **installation profile** on that cluster. This lets us achieve performance-oriented settings such as control plane pod autoscaling, and ensures that resource limits are appropriate for heavy traffic load. The [default](/docs/setup/install/helm/#option-1-install-with-helm-via-helm-template) Istio installation is suitable for most benchmarking use cases. For extensive performance benchmarking, with thousands of proxy-injected services, we also provide [a tuned Istio install](https://github.com/istio/tools/blob/81cc22348059bb17ad9c2f571018e78780a1bbf5/perf/istio-install/values.yaml) that allocates extra memory and CPU to the Istio control plane. -{{< warning_icon >}} Istio's [demo installation](/docs/setup/kubernetes/install/kubernetes/) is not suitable for performance testing, because it is designed to be deployed on a small trial cluster, and has full tracing and access logs enabled to showcase Istio's features. +{{< warning_icon >}} Istio's [demo installation](/docs/setup/install/kubernetes/) is not suitable for performance testing, because it is designed to be deployed on a small trial cluster, and has full tracing and access logs enabled to showcase Istio's features. ## 2. Focus on the data plane @@ -44,7 +44,7 @@ Why test with only two pods? Because scaling up throughput (RPS) and connections ## 3. Measure with and without proxies -While many Istio features, such as [mutual TLS authentication](/docs/concepts/security/#mutual-tls-authentication), rely on an Envoy proxy next to an application pod, you can [selectively disable](/docs/setup/kubernetes/additional-setup/sidecar-injection/#disabling-or-updating-the-webhook) sidecar proxy injection for some of your mesh services. As you scale up Istio for production, you may want to incrementally add the sidecar proxy to your workloads. +While many Istio features, such as [mutual TLS authentication](/docs/concepts/security/#mutual-tls-authentication), rely on an Envoy proxy next to an application pod, you can [selectively disable](/docs/setup/additional-setup/sidecar-injection/#disabling-or-updating-the-webhook) sidecar proxy injection for some of your mesh services. As you scale up Istio for production, you may want to incrementally add the sidecar proxy to your workloads. To that end, the test scripts provide [three different modes](https://github.com/istio/tools/tree/81cc22348059bb17ad9c2f571018e78780a1bbf5/perf/benchmark#run-performance-tests). These modes analyze Istio's performance when a request goes through both the client and server proxies (`both`), just the server proxy (`serveronly`), and neither proxy (`baseline`). diff --git a/content/en/boilerplates/before-you-begin-egress.md b/content/en/boilerplates/before-you-begin-egress.md index dc56766053..7162743044 100644 --- a/content/en/boilerplates/before-you-begin-egress.md +++ b/content/en/boilerplates/before-you-begin-egress.md @@ -6,7 +6,7 @@ * Deploy the [sleep]({{< github_tree >}}/samples/sleep) sample app to use as a test source for sending requests. If you have - [automatic sidecar injection](/docs/setup/kubernetes/additional-setup/sidecar-injection/#automatic-sidecar-injection) + [automatic sidecar injection](/docs/setup/additional-setup/sidecar-injection/#automatic-sidecar-injection) enabled, run the following command to deploy the sample app: {{< text bash >}} diff --git a/content/en/boilerplates/notes/0.5.md b/content/en/boilerplates/notes/0.5.md index d408e09e75..4f4d14ab34 100644 --- a/content/en/boilerplates/notes/0.5.md +++ b/content/en/boilerplates/notes/0.5.md @@ -8,7 +8,7 @@ information on customized Istio deployments. [mutating webhook feature](https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG-1.9.md#api-machinery) to provide automatic pod-level proxy injection. Automatic injection requires Kubernetes 1.9 or beyond and therefore doesn't work on older versions. The alpha initializer mechanism is no longer supported. -[Learn more](/docs/setup/kubernetes/additional-setup/sidecar-injection/#automatic-sidecar-injection) +[Learn more](/docs/setup/additional-setup/sidecar-injection/#automatic-sidecar-injection) - **Revised Traffic Rules**. Based on user feedback, we have made significant changes to Istio's traffic management (routing rules, destination rules, etc.). We would love your continuing feedback while we polish this in the coming weeks. diff --git a/content/en/boilerplates/notes/0.7.md b/content/en/boilerplates/notes/0.7.md index 4cb645cdbf..7a34dd8590 100644 --- a/content/en/boilerplates/notes/0.7.md +++ b/content/en/boilerplates/notes/0.7.md @@ -7,5 +7,5 @@ change in 0.8 and beyond. Known Issues: -Our [Helm chart](/docs/setup/kubernetes/install/helm) +Our [Helm chart](/docs/setup/install/helm) currently requires some workaround to apply the chart correctly, see [4701](https://github.com/istio/istio/issues/4701) for details. diff --git a/content/en/boilerplates/notes/0.8.md b/content/en/boilerplates/notes/0.8.md index ca76309105..4824500fbf 100644 --- a/content/en/boilerplates/notes/0.8.md +++ b/content/en/boilerplates/notes/0.8.md @@ -3,7 +3,7 @@ - **Revamped Traffic Management Model**. We're finally ready to take the wraps off our [new traffic management APIs](/blog/2018/v1alpha3-routing/). We believe this new model is easier to understand while covering more real world deployment [use-cases](/docs/tasks/traffic-management/). For folks upgrading from earlier releases there is a -[migration guide](/docs/setup/kubernetes/upgrade/) and a conversion tool built into `istioctl` to help convert your configuration from the old model. +[migration guide](/docs/setup/upgrade/) and a conversion tool built into `istioctl` to help convert your configuration from the old model. - **Streaming Envoy configuration**. By default Pilot now streams configuration to Envoy using its [ADS API](https://github.com/envoyproxy/data-plane-api/blob/master/xds_protocol.rst). This new approach increases effective scalability, reduces rollout delay and should eliminate spurious 404 errors. diff --git a/content/en/boilerplates/notes/1.0.md b/content/en/boilerplates/notes/1.0.md index a1ea982729..c9599be92b 100644 --- a/content/en/boilerplates/notes/1.0.md +++ b/content/en/boilerplates/notes/1.0.md @@ -76,11 +76,11 @@ be configured using [authentication policies](/docs/concepts/security/#authentic ## Known issues with 1.0 - Amazon's EKS service does not implement automatic sidecar injection. Istio can be used in Amazon's - EKS by using [manual injection](/docs/setup/kubernetes/additional-setup/sidecar-injection/#manual-sidecar-injection) for - sidecars and turning off galley using the [Helm parameter](/docs/setup/kubernetes/install/helm) + EKS by using [manual injection](/docs/setup/additional-setup/sidecar-injection/#manual-sidecar-injection) for + sidecars and turning off galley using the [Helm parameter](/docs/setup/install/helm) `--set galley.enabled=false`. -- In a [multicluster deployment](/docs/setup/kubernetes/install/multicluster) the mixer-telemetry +- In a [multicluster deployment](/docs/setup/install/multicluster) the mixer-telemetry and mixer-policy components do not connect to the Kubernetes API endpoints of any of the remote clusters. This results in a loss of telemetry fidelity as some of the metadata associated with workloads on remote clusters is incomplete. diff --git a/content/en/boilerplates/notes/1.1.md b/content/en/boilerplates/notes/1.1.md index 7bd419e8e0..1541654707 100644 --- a/content/en/boilerplates/notes/1.1.md +++ b/content/en/boilerplates/notes/1.1.md @@ -2,15 +2,15 @@ In addition to the new features and improvements listed below, Istio 1.1 has introduced a number of significant changes from 1.0 that can alter the behavior of applications. -A concise list of these changes can be found in the [upgrade notice](/docs/setup/kubernetes/upgrade/notice). +A concise list of these changes can be found in the [upgrade notice](/docs/setup/upgrade/notice). ## Upgrades We recommend a manual upgrade of the control plane and data plane to 1.1. See -the [upgrades documents](/docs/setup/kubernetes/upgrade/) for more information. +the [upgrades documents](/docs/setup/upgrade/) for more information. {{< warning >}} -Be sure to check out the [upgrade notice](/docs/setup/kubernetes/upgrade/notice) for a +Be sure to check out the [upgrade notice](/docs/setup/upgrade/notice) for a concise list of things you should know before upgrading your deployment to Istio 1.1. {{< /warning >}} @@ -25,12 +25,12 @@ concise list of things you should know before upgrading your deployment to Istio - **Installation Configuration Profiles**. Added several installation configuration profiles to simplify the installation process using well-known and well-tested patterns. Learn more about the better user experience - afforded by the [installation profile feature](/docs/setup/kubernetes/additional-setup/config-profiles/). + afforded by the [installation profile feature](/docs/setup/additional-setup/config-profiles/). - **Improved Multicluster Integration**. Consolidated the 1.0 `istio-remote` chart previously used for - [multicluster VPN](/docs/setup/kubernetes/install/multicluster/shared-vpn/) and - [multicluster split horizon](/docs/setup/kubernetes/install/multicluster/shared-gateways/) remote cluster installation + [multicluster VPN](/docs/setup/install/multicluster/shared-vpn/) and + [multicluster split horizon](/docs/setup/install/multicluster/shared-gateways/) remote cluster installation into the Istio Helm chart simplifying the operational experience. ## Traffic management @@ -200,7 +200,7 @@ concise list of things you should know before upgrading your deployment to Istio replace`, `istioctl get`, and `istioctl delete` commands. Use the [`kubectl`](https://kubernetes.io/docs/tasks/tools/install-kubectl) equivalents instead. Deprecated the `istioctl gen-deploy` command too. Use a - [`helm template`](/docs/setup/kubernetes/install/helm/#option-1-install-with-helm-via-helm-template) + [`helm template`](/docs/setup/install/helm/#option-1-install-with-helm-via-helm-template) instead. Release 1.2 will remove these commands. - **Short Commands**. Included short commands in `kubectl` for gateways, diff --git a/content/en/boilerplates/notes/1.2.md b/content/en/boilerplates/notes/1.2.md index ad237117a5..14e673566d 100644 --- a/content/en/boilerplates/notes/1.2.md +++ b/content/en/boilerplates/notes/1.2.md @@ -65,7 +65,7 @@ Refer to the [installation option change page](/docs/reference/config/installati ## Others -- **Added** [Istio CNI support](/docs/setup/kubernetes/additional-setup/cni/) to setup sidecar network redirection and remove the use of `istio-init` containers requiring `NET_ADMIN` capability. +- **Added** [Istio CNI support](/docs/setup/additional-setup/cni/) to setup sidecar network redirection and remove the use of `istio-init` containers requiring `NET_ADMIN` capability. - **Added** a new experimental ['a-la-carte' Istio installer](https://github.com/istio/installer/wiki) to enable users to install and upgrade Istio with desired isolation and security. - **Added** the [DNS-discovery](https://github.com/istio-ecosystem/dns-discovery) and [iter8](https://github.com/istio-ecosystem/iter8) in [Istio ecosystem](https://github.com/istio-ecosystem). - **Added** [environment variable and configuration file support](https://docs.google.com/document/d/1M-qqBMNbhbAxl3S_8qQfaeOLAiRqSBpSgfWebFBRuu8/edit) for configuring Galley, in addition to command-line flags. diff --git a/content/en/boilerplates/start-httpbin-service.md b/content/en/boilerplates/start-httpbin-service.md index 0f1e2b3b84..9e266dd69c 100644 --- a/content/en/boilerplates/start-httpbin-service.md +++ b/content/en/boilerplates/start-httpbin-service.md @@ -2,7 +2,7 @@ --- * Start the [httpbin]({{< github_tree >}}/samples/httpbin) sample. - If you have enabled [automatic sidecar injection](/docs/setup/kubernetes/additional-setup/sidecar-injection/#automatic-sidecar-injection), deploy the `httpbin` service: + If you have enabled [automatic sidecar injection](/docs/setup/additional-setup/sidecar-injection/#automatic-sidecar-injection), deploy the `httpbin` service: {{< text bash >}} $ kubectl apply -f @samples/httpbin/httpbin.yaml@ diff --git a/content/en/docs/concepts/multicluster-deployments/index.md b/content/en/docs/concepts/multicluster-deployments/index.md index 041a375f53..06026c8e52 100644 --- a/content/en/docs/concepts/multicluster-deployments/index.md +++ b/content/en/docs/concepts/multicluster-deployments/index.md @@ -80,7 +80,7 @@ configuration. You configure service discovery of `foo.ns.global` by creating an [service entry](/docs/concepts/traffic-management/#service-entries). To configure this type of multicluster topology, visit our -[dedicated control planes instructions](/docs/setup/kubernetes/install/multicluster/gateways/). +[dedicated control planes instructions](/docs/setup/install/multicluster/gateways/). ### Shared control plane topology @@ -106,7 +106,7 @@ overlap and DNS resolution for services on remote clusters is not automatic. Use the services on every participating cluster. To configure this type of multicluster topology, visit our -[single-network shared control plane instructions](/docs/setup/kubernetes/install/multicluster/shared-vpn/). +[single-network shared control plane instructions](/docs/setup/install/multicluster/shared-vpn/). #### Multi-network shared control plane topology @@ -127,4 +127,4 @@ is forwarded to the local service IP as usual. If the destination workload is ru different cluster, the remote cluster Gateway IP is used to connect to the service instead. To configure this type of multicluster topology, visit our -[multi-network shared control plane instructions](/docs/setup/kubernetes/install/multicluster/shared-gateways/). +[multi-network shared control plane instructions](/docs/setup/install/multicluster/shared-gateways/). diff --git a/content/en/docs/concepts/traffic-management/index.md b/content/en/docs/concepts/traffic-management/index.md index 6870ec8c3b..adce5eb051 100644 --- a/content/en/docs/concepts/traffic-management/index.md +++ b/content/en/docs/concepts/traffic-management/index.md @@ -994,7 +994,7 @@ outside of the mesh: - Add a service running in a Virtual Machine (VM) to the mesh to [expand your mesh](/docs/examples/mesh-expansion/). - Logically add services from a different cluster to the mesh to configure a - [multicluster Istio mesh](/docs/setup/kubernetes/install/multicluster/gateways/#configure-the-example-services) + [multicluster Istio mesh](/docs/setup/install/multicluster/gateways/#configure-the-example-services) on Kubernetes. You don’t need to add a service entry for every external service that you diff --git a/content/en/docs/examples/bookinfo/index.md b/content/en/docs/examples/bookinfo/index.md index 60a07c7c68..f0fb8caef1 100644 --- a/content/en/docs/examples/bookinfo/index.md +++ b/content/en/docs/examples/bookinfo/index.md @@ -39,15 +39,14 @@ for the `reviews` service. ## Before you begin If you haven't already done so, setup Istio by following the instructions -corresponding to your platform [installation guide](/docs/setup/). +in the [installation guide](/docs/setup/). ## Deploying the application To run the sample with Istio requires no changes to the -application itself. Instead, we simply need to configure and run the services in an +application itself. Instead, you simply need to configure and run the services in an Istio-enabled environment, with Envoy sidecars injected along side each service. -The needed commands and configuration vary depending on the runtime environment -although in all cases the resulting deployment will look like this: +The resulting deployment will look like this: {{< image width="80%" link="./withistio.svg" caption="Bookinfo Application" >}} @@ -56,12 +55,7 @@ and outgoing calls for the services, providing the hooks needed to externally co via the Istio control plane, routing, telemetry collection, and policy enforcement for the application as a whole. -To start the application, follow the instructions corresponding to your Istio runtime environment. - -* [If you are running on Kubernetes](#if-you-are-running-on-kubernetes) -* [If you are running on Docker with Consul](#if-you-are-running-on-docker-with-consul) - -### If you are running on Kubernetes +### Start the application services {{< tip >}} If you use GKE, please ensure your cluster has at least 4 standard GKE nodes. If you use Minikube, please ensure you have at least 4GB RAM. @@ -69,7 +63,7 @@ If you use GKE, please ensure your cluster has at least 4 standard GKE nodes. If 1. Change directory to the root of the Istio installation. -1. The default Istio installation uses [automatic sidecar injection](/docs/setup/kubernetes/additional-setup/sidecar-injection/#automatic-sidecar-injection). +1. The default Istio installation uses [automatic sidecar injection](/docs/setup/additional-setup/sidecar-injection/#automatic-sidecar-injection). Label the namespace that will host the application with `istio-injection=enabled`: {{< text bash >}} @@ -84,7 +78,7 @@ If you use GKE, please ensure your cluster has at least 4 standard GKE nodes. If {{< warning >}} If you disabled automatic sidecar injection during installation and rely on [manual sidecar injection] - (/docs/setup/kubernetes/additional-setup/sidecar-injection/#manual-sidecar-injection), + (/docs/setup/additional-setup/sidecar-injection/#manual-sidecar-injection), use the `istioctl kube-inject` command to modify the `bookinfo.yaml` file before deploying your application. For more information please visit the `istioctl` [reference documentation](/docs/reference/commands/istioctl/#istioctl-kube-inject). @@ -136,7 +130,7 @@ If you use GKE, please ensure your cluster has at least 4 standard GKE nodes. IfDetails on multicluster and the Kubernetes secret required to access the remote cluster’s credentials can be found in -multicluster install.
+multicluster install.NOTE: If cluster_registries_namespace
is not set then the environment
variable POD_NAMESPACE
is checked/used. If POD_NAMESPACE
is not
diff --git a/content/en/docs/setup/_index.md b/content/en/docs/setup/_index.md
index cfad5bd52c..555bf197a8 100644
--- a/content/en/docs/setup/_index.md
+++ b/content/en/docs/setup/_index.md
@@ -1,6 +1,108 @@
---
title: Setup
-description: How to deploy and upgrade Istio in various environments such as Kubernetes and Consul.
+description: Instructions for installing the Istio control plane on Kubernetes and adding virtual machines into the mesh.
weight: 15
icon: setup
+aliases:
+ - /docs/tasks/installing-istio.html
+ - /docs/setup/install-kubernetes.html
+ - /docs/setup/kubernetes/quick-start.html
+ - /docs/setup/kubernetes/download-release/
+ - /docs/setup/kubernetes/download/
+ - /docs/setup/kubernetes/
+keywords: [kubernetes,install,quick-start,setup,installation]
+content_above: true
---
+
+{{< tip >}}
+Istio {{< istio_version >}} has been tested with these Kubernetes releases: {{< supported_kubernetes_versions >}}.
+{{< /tip >}}
+
+Visit our [getting started guide](/docs/setup/getting-started/) to
+learn how to evaluate and try Istio's basic features quickly.
+
+Istio offers multiple installation flows
+depending on your platform and whether or not you intend to use Istio in production.
+At a high level, the basic flow is the same regardless of platform:
+
+1. [Review the pod requirements](/docs/setup/additional-setup/requirements/)
+1. [Prepare your platform for Istio](/docs/setup/platform-setup/)
+1. [Download the Istio release](#downloading-the-release)
+1. [Install Istio on your platform](#installing-istio)
+
+## Installing Istio
+
+Choose one of the following installation options, depending on your intended use:
+
+- [Demo installation](/docs/setup/install/kubernetes/):
+ This option is ideal if you're new to Istio and just want to try it out.
+ It allows you to experiment with many Istio features with modest resource requirements.
+
+- [Custom installation with Helm](/docs/setup/install/helm/):
+ This option is ideal to install Istio for production use or for performance evaluation.
+
+- [Supported platform installation](/docs/setup/install/platform/):
+ This option is ideal if your platform provides native support for Istio-enabled clusters
+ with a [configuration profile](/docs/setup/additional-setup/config-profiles/)
+ corresponding to your intended use.
+
+After choosing an option and installing Istio on your cluster, you can deploy
+your own applications or experiment with some of our [tasks](/docs/tasks/) and [examples](/docs/examples/).
+
+{{< tip >}}
+If you're running your own applications, make sure to
+check the [requirements for pods and services](/docs/setup/additional-setup/requirements/).
+{{< /tip >}}
+
+When you're ready to consider more advanced Istio use cases, check out the following resources:
+
+- To install using Istio's Container Network Interface
+(CNI) plugin, visit our [CNI guide](/docs/setup/additional-setup/cni/).
+
+- To perform a multicluster setup, visit our
+[multicluster installation documents](/docs/setup/install/multicluster/).
+
+- To expand your existing mesh with additional containers or VMs not running on
+your mesh's Kubernetes cluster, follow our [mesh expansion guide](/docs/examples/mesh-expansion/).
+
+- To add services requires a detailed understanding of sidecar injection. Visit our
+[sidecar injection guide](/docs/setup/additional-setup/sidecar-injection/)
+to learn more.
+
+## Downloading the release
+
+Istio is installed in its own `istio-system` namespace and can manage
+services from all other namespaces.
+
+1. Go to the [Istio release](https://github.com/istio/istio/releases) page to
+ download the installation file corresponding to your OS. On a macOS or
+ Linux system, you can run the following command to download and
+ extract the latest release automatically:
+
+ {{< text bash >}}
+ $ curl -L https://git.io/getLatestIstio | ISTIO_VERSION={{< istio_full_version >}} sh -
+ {{< /text >}}
+
+1. Move to the Istio package directory. For example, if the package is
+ `istio-{{< istio_full_version >}}`:
+
+ {{< text bash >}}
+ $ cd istio-{{< istio_full_version >}}
+ {{< /text >}}
+
+ The installation directory contains:
+
+ - Installation YAML files for Kubernetes in `install/kubernetes`
+ - Sample applications in `samples/`
+ - The `istioctl` client binary in the `bin/` directory. `istioctl` is
+ used when manually injecting Envoy as a sidecar proxy.
+
+1. Add the `istioctl` client to your `PATH` environment variable, on a macOS or
+ Linux system:
+
+ {{< text bash >}}
+ $ export PATH=$PWD/bin:$PATH
+ {{< /text >}}
+
+1. You can enable the [auto-completion option](/docs/ops/setup/istioctl) when working with a bash or ZSH console.
+
diff --git a/content/en/docs/setup/kubernetes/additional-setup/_index.md b/content/en/docs/setup/additional-setup/_index.md
similarity index 85%
rename from content/en/docs/setup/kubernetes/additional-setup/_index.md
rename to content/en/docs/setup/additional-setup/_index.md
index 590ff46879..8b50622b13 100644
--- a/content/en/docs/setup/kubernetes/additional-setup/_index.md
+++ b/content/en/docs/setup/additional-setup/_index.md
@@ -5,5 +5,6 @@ weight: 100
aliases:
- /docs/tasks/installing-istio.html
- /docs/setup/install-kubernetes.html
+ - /docs/setup/kubernetes/additional-setup/
keywords: [sidecar-injection, mesh-expansion, pod-requirements, piecemeal-install]
---
diff --git a/content/en/docs/setup/kubernetes/additional-setup/cni/index.md b/content/en/docs/setup/additional-setup/cni/index.md
similarity index 95%
rename from content/en/docs/setup/kubernetes/additional-setup/cni/index.md
rename to content/en/docs/setup/additional-setup/cni/index.md
index c974e0024f..c5fa49f09e 100644
--- a/content/en/docs/setup/kubernetes/additional-setup/cni/index.md
+++ b/content/en/docs/setup/additional-setup/cni/index.md
@@ -4,6 +4,7 @@ description: Install and use Istio with the Istio CNI plugin, allowing operators
weight: 70
aliases:
- /docs/setup/kubernetes/install/cni
+ - /docs/setup/kubernetes/additional-setup/cni
keywords: [kubernetes,cni,sidecar,proxy,network,helm]
---
@@ -23,7 +24,7 @@ networking functionality but without requiring Istio users to enable elevated
Kubernetes RBAC permissions.
The Istio CNI plugin performs the Istio mesh pod traffic redirection in the Kubernetes pod lifecycle's network
-setup phase, thereby removing the [`NET_ADMIN` capability requirement](/docs/setup/kubernetes/additional-setup/requirements/)
+setup phase, thereby removing the [`NET_ADMIN` capability requirement](/docs/setup/additional-setup/requirements/)
for users deploying pods into the Istio mesh. The [Istio CNI plugin](https://github.com/istio/cni)
replaces the functionality provided by the `istio-init` container.
@@ -46,7 +47,7 @@ replaces the functionality provided by the `istio-init` container.
Refer to [Hosted Kubernetes settings](#hosted-kubernetes-settings) for any non-default settings required.
1. Install Istio CNI and Istio using Helm.
- Refer to the [Customizable Install with Helm](/docs/setup/kubernetes/install/helm/#cni) instructions and the
+ Refer to the [Customizable Install with Helm](/docs/setup/install/helm/#cni) instructions and the
**Istio CNI enabled** profile.
Pass `--set cniBinDir=...` and/or `--set cniConfDir=...` options when installing `istio-cni` if non-default,
as determined in the previous step.
@@ -76,7 +77,7 @@ This example uses Helm to perform the following tasks:
* `foo_ns`
* `bar_ns`
-Refer to the [Customizable Install with Helm](/docs/setup/kubernetes/install/helm/#cni) for complete instructions.
+Refer to the [Customizable Install with Helm](/docs/setup/install/helm/#cni) for complete instructions.
Use the following command to render and apply Istio CNI components and override the default configuration of the
`istio-cni` Helm chart's `logLevel` and `excludeNamespaces` parameters:
@@ -104,7 +105,7 @@ The following table shows the required settings for many common Kubernetes envir
### GKE setup
-1. Refer to the procedure to [prepare a GKE cluster for Istio](/docs/setup/kubernetes/platform-setup/gke/) and
+1. Refer to the procedure to [prepare a GKE cluster for Istio](/docs/setup/platform-setup/gke/) and
enable [network-policy](https://cloud.google.com/kubernetes-engine/docs/how-to/network-policy) in your cluster.
{{< warning >}}
@@ -122,12 +123,12 @@ The following table shows the required settings for many common Kubernetes envir
The use of the Istio CNI plugin requires Kubernetes pods to be deployed with a sidecar injection method
that uses the `istio-sidecar-injector` configmap created from the Helm installation with the
-`istio_cni.enabled=true`. Refer to [Istio sidecar injection](/docs/setup/kubernetes/additional-setup/sidecar-injection/)
+`istio_cni.enabled=true`. Refer to [Istio sidecar injection](/docs/setup/additional-setup/sidecar-injection/)
for details about Istio sidecar injection methods.
The following sidecar injection methods are supported for use with the Istio CNI plugin:
-1. [Automatic sidecar injection](/docs/setup/kubernetes/additional-setup/sidecar-injection/#automatic-sidecar-injection)
+1. [Automatic sidecar injection](/docs/setup/additional-setup/sidecar-injection/#automatic-sidecar-injection)
1. Manual sidecar injection with the `istio-sidecar-injector` configmap
1. `istioctl kube-inject` using the configmap directly:
diff --git a/content/en/docs/setup/kubernetes/additional-setup/config-profiles/index.md b/content/en/docs/setup/additional-setup/config-profiles/index.md
similarity index 94%
rename from content/en/docs/setup/kubernetes/additional-setup/config-profiles/index.md
rename to content/en/docs/setup/additional-setup/config-profiles/index.md
index 6a3f31a6eb..7e490821b0 100644
--- a/content/en/docs/setup/kubernetes/additional-setup/config-profiles/index.md
+++ b/content/en/docs/setup/additional-setup/config-profiles/index.md
@@ -2,11 +2,13 @@
title: Installation Configuration Profiles
description: Describes the built-in Istio installation configuration profiles.
weight: 35
+aliases:
+ - /docs/setup/kubernetes/additional-setup/config-profiles/
keywords: [profiles,install,helm]
---
This page describes the built-in configuration profiles that can be used when
-[installing Istio using helm](/docs/setup/kubernetes/install/helm/).
+[installing Istio using helm](/docs/setup/install/helm/).
The profiles provide customization of the Istio control plane and of the sidecars for the Istio data plane.
You can start with one of Istio’s built-in configuration profiles and then further customize the configuration for
your specific needs. The following built-in configuration profiles are currently available:
@@ -16,7 +18,7 @@ your specific needs. The following built-in configuration profiles are currently
1. **demo**: configuration designed to showcase Istio functionality with modest resource requirements.
It is suitable to run the [Bookinfo](/docs/examples/bookinfo/) application and associated tasks.
- This is the same configuration that is installed with the [Quick Start](/docs/setup/kubernetes/install/kubernetes/) instructions, only using helm has the advantage
+ This is the same configuration that is installed with the [Quick Start](/docs/setup/install/kubernetes/) instructions, only using helm has the advantage
that you can more easily enable additional features if you later wish to explore more advanced tasks.
This profile comes in two variants, either with or without authentication enabled.
@@ -90,4 +92,4 @@ This profile installs the same components as the Istio **default** configuration
1. The `coredns` addon.
-Refer to the [multicluster installation instructions](/docs/setup/kubernetes/install/multicluster/) for more details.
+Refer to the [multicluster installation instructions](/docs/setup/install/multicluster/) for more details.
diff --git a/content/en/docs/setup/kubernetes/additional-setup/customize/index.md b/content/en/docs/setup/additional-setup/customize/index.md
similarity index 95%
rename from content/en/docs/setup/kubernetes/additional-setup/customize/index.md
rename to content/en/docs/setup/additional-setup/customize/index.md
index 8d681bec01..c917366c97 100644
--- a/content/en/docs/setup/kubernetes/additional-setup/customize/index.md
+++ b/content/en/docs/setup/additional-setup/customize/index.md
@@ -2,6 +2,8 @@
title: Advanced Install Options
description: Customize the Istio installation.
weight: 35
+aliases:
+ - /docs/setup/kubernetes/additional-setup/customize/
keywords: [kubernetes]
draft: true
---
@@ -57,6 +59,6 @@ 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/additional-setup/sidecar-injection/#manual-sidecar-injection).
+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/additional-setup/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.
diff --git a/content/en/docs/setup/kubernetes/additional-setup/requirements/index.md b/content/en/docs/setup/additional-setup/requirements/index.md
similarity index 97%
rename from content/en/docs/setup/kubernetes/additional-setup/requirements/index.md
rename to content/en/docs/setup/additional-setup/requirements/index.md
index 44cbd607ae..147f5ae388 100644
--- a/content/en/docs/setup/kubernetes/additional-setup/requirements/index.md
+++ b/content/en/docs/setup/additional-setup/requirements/index.md
@@ -6,6 +6,7 @@ aliases:
- /docs/setup/kubernetes/spec-requirements/
- /docs/setup/kubernetes/prepare/spec-requirements/
- /docs/setup/kubernetes/prepare/requirements/
+ - /docs/setup/kubernetes/additional-setup/requirements/
keywords: [kubernetes,sidecar,sidecar-injection]
---
@@ -61,7 +62,7 @@ cluster must satisfy the following requirements:
with the user ID (UID) value of **1337**.
- **`NET_ADMIN` capability**: If your cluster enforces pod security policies,
- pods must allow the `NET_ADMIN` capability. If you use the [Istio CNI Plugin](/docs/setup/kubernetes/additional-setup/cni/),
+ pods must allow the `NET_ADMIN` capability. If you use the [Istio CNI Plugin](/docs/setup/additional-setup/cni/),
this requirement no longer applies. To learn more about the `NET_ADMIN`
capability, visit [Required Pod Capabilities](/docs/ops/setup/required-pod-capabilities/).
diff --git a/content/en/docs/setup/kubernetes/additional-setup/sidecar-injection/index.md b/content/en/docs/setup/additional-setup/sidecar-injection/index.md
similarity index 99%
rename from content/en/docs/setup/kubernetes/additional-setup/sidecar-injection/index.md
rename to content/en/docs/setup/additional-setup/sidecar-injection/index.md
index 43ae0c5119..ed97e25a06 100644
--- a/content/en/docs/setup/kubernetes/additional-setup/sidecar-injection/index.md
+++ b/content/en/docs/setup/additional-setup/sidecar-injection/index.md
@@ -6,6 +6,7 @@ keywords: [kubernetes,sidecar,sidecar-injection]
aliases:
- /docs/setup/kubernetes/automatic-sidecar-inject.html
- /docs/setup/kubernetes/sidecar-injection/
+ - /docs/setup/kubernetes/additional-setup/sidecar-injection/
---
## Injection
@@ -81,7 +82,7 @@ Note that unlike manual injection, automatic injection occurs at the pod-level.
#### Disabling or updating the webhook
The sidecar injecting webhook is enabled by default. If you wish to disable the webhook, you can
-use [Helm](/docs/setup/kubernetes/install/helm/) to generate an updated `istio.yaml`
+use [Helm](/docs/setup/install/helm/) to generate an updated `istio.yaml`
with the option `sidecarInjectorWebhook.enabled` set to `false`. E.g.
{{< text bash >}}
diff --git a/content/en/docs/setup/consul/_index.md b/content/en/docs/setup/consul/_index.md
deleted file mode 100644
index 4bc877cd39..0000000000
--- a/content/en/docs/setup/consul/_index.md
+++ /dev/null
@@ -1,6 +0,0 @@
----
-title: Nomad & Consul
-description: Instructions for installing the Istio control plane in a Consul based environment, with or without Nomad.
-weight: 20
-keywords: [consul]
----
\ No newline at end of file
diff --git a/content/en/docs/setup/consul/install/index.md b/content/en/docs/setup/consul/install/index.md
deleted file mode 100644
index d36dd99722..0000000000
--- a/content/en/docs/setup/consul/install/index.md
+++ /dev/null
@@ -1,127 +0,0 @@
----
-title: Installation
-description: Instructions for installing the Istio control plane in a Consul-based environment, with or without Nomad.
-weight: 30
-keywords: [consul]
----
-
-{{< warning >}}
-Setup on Nomad has not been tested.
-{{< /warning >}}
-
-Using Istio in a non-Kubernetes environment involves a few key tasks:
-
-1. Setting up the Istio control plane with the Istio API server
-1. Adding the Istio sidecar to every instance of a service
-1. Ensuring requests are routed through the sidecars
-
-## Setting up the control plane
-
-Istio control plane consists of four main services: Pilot, Mixer, Citadel, and
-the API server.
-
-### API Server
-
-Istio's API server (based on Kubernetes' API server) provides key functions
-such as configuration management and Role-Based Access Control. The API
-server requires an
-[etcd cluster](https://v1-12.docs.kubernetes.io/docs/setup/scratch/#etcd)
-as a persistent store. See the
-[instructions for setting up the API server](https://v1-12.docs.kubernetes.io/docs/getting-started-guides/scratch/#apiserver-controller-manager-and-scheduler).
-
-#### Local install
-
-For _proof of concept_ purposes, it is possible to install
-a simple single container API server using the following Docker-compose file:
-
-{{< text yaml >}}
-version: '2'
-services:
- etcd:
- image: quay.io/coreos/etcd:latest
- networks:
- istiomesh:
- aliases:
- - etcd
- ports:
- - "4001:4001"
- - "2380:2380"
- - "2379:2379"
- environment:
- - SERVICE_IGNORE=1
- command: [
- "/usr/local/bin/etcd",
- "-advertise-client-urls=http://0.0.0.0:2379",
- "-listen-client-urls=http://0.0.0.0:2379"
- ]
-
- istio-apiserver:
- image: gcr.io/google_containers/kube-apiserver-amd64:v1.7.3
- networks:
- istiomesh:
- ipv4_address: 172.28.0.13
- aliases:
- - apiserver
- ports:
- - "8080:8080"
- privileged: true
- environment:
- - SERVICE_IGNORE=1
- command: [
- "kube-apiserver", "--etcd-servers", "http://etcd:2379",
- "--service-cluster-ip-range", "10.99.0.0/16",
- "--insecure-port", "8080",
- "-v", "2",
- "--insecure-bind-address", "0.0.0.0"
- ]
-{{< /text >}}
-
-### Other Istio components
-
-Debian packages for Istio Pilot, Mixer, and Citadel are available through the
-Istio release. Alternatively, these components can be run as Docker
-containers (`docker.io/istio/pilot`, `docker.io/istio/mixer`,
-`docker.io/istio/citadel`). Note that these components are stateless and can
-be scaled horizontally. Each of these components depends on the Istio API
-server, which in turn depends on the etcd cluster for persistence. To
-achieve high availability, each control plane service could be run as a
-[job](https://www.nomadproject.io/docs/job-specification/index.html) in
-Nomad, where the
-[service stanza](https://www.nomadproject.io/docs/job-specification/service.html)
-can be used to describe the desired properties of the control plane services. Some
-of these components may require additional install artifacts to be present in the
-Istio API server to function appropriately.
-
-## Adding sidecars to service instances
-
-Each instance of a service in an application must be accompanied by the
-Istio sidecar. Depending on the unit of your installation (Docker
-containers, VM, bare metal nodes), the Istio sidecar needs to be installed
-into these components. For example, if your infrastructure uses VMs, the
-Istio sidecar process must be run on each VM that needs to be part of the
-service mesh.
-
-One way to package the sidecars into a Nomad-based deployment is to add the
-Istio sidecar process as a task in a
-[task group](https://www.nomadproject.io/docs/job-specification/group.html). A
-task group is a collection of one or more related tasks that are guaranteed to be
-colocated on the same host. However, unlike Kubernetes Pods, tasks in a
-group do not share the same network namespace. Hence, care must be taken to
-ensure that only one task group is run per host, when using `iptables`
-rules to transparently re-route all network traffic via the Istio
-sidecar. When support for non-transparent proxying (application explicitly
-talks to the sidecar) is available in Istio, this restriction will no
-longer apply.
-
-## Routing traffic through Istio sidecars
-
-Part of the sidecar installation should involve setting up appropriate IP
-Table rules to transparently route application's network traffic through
-the Istio sidecars. The IP table script to setup such forwarding can be
-found in the
-[here]({{< github_file >}}/tools/packaging/common/istio-iptables.sh).
-
-{{< warning >}}
-This script must be executed before starting the application or
-the sidecar process.
-{{< /warning >}}
diff --git a/content/en/docs/setup/consul/quick-start/index.md b/content/en/docs/setup/consul/quick-start/index.md
deleted file mode 100644
index f0abe2c000..0000000000
--- a/content/en/docs/setup/consul/quick-start/index.md
+++ /dev/null
@@ -1,105 +0,0 @@
----
-title: Quick Start on Docker
-description: Quick Start instructions to setup the Istio service mesh with Docker Compose.
-weight: 10
-keywords: [consul]
----
-
-Quick Start instructions to install and configure Istio networking in a Docker Compose setup.
-
-## Prerequisites
-
-* [Docker](https://docs.docker.com/engine/installation/)
-* [Docker Compose](https://docs.docker.com/compose/install/)
-
-## Installation steps
-
-1. Go to the [Istio release](https://github.com/istio/istio/releases) page to download the
- installation file corresponding to your OS. If you are using a macOS or Linux system, you can also
- run the following command to download and extract the latest release automatically:
-
- {{< text bash >}}
- $ curl -L https://git.io/getLatestIstio | ISTIO_VERSION={{< istio_full_version >}} sh -
- {{< /text >}}
-
-1. Extract the installation file and change the directory to the file location. The
-installation directory contains:
-
- * Sample applications in `samples/`
- * The `istioctl` client binary in the `bin/` directory. `istioctl` is used for some debug and diagnostics tasks.
- * The `istio.VERSION` configuration file
-
-1. Add the `istioctl` client to your PATH.
-For example, run the following command on a macOS or Linux system:
-
- {{< text bash >}}
- $ export PATH=$PWD/bin:$PATH
- {{< /text >}}
-
-1. Install `kubectl` using [these instructions](https://kubernetes.io/docs/tasks/tools/install-kubectl).
-
-`kubectl` is used to create, read, modify, and delete Istio API resources.
-
-1. For Linux users, configure the `DOCKER_GATEWAY` environment variable
-
- {{< text bash >}}
- $ export DOCKER_GATEWAY=172.28.0.1:
- {{< /text >}}
-
-1. Change directory to the root of the Istio installation directory.
-
-1. Bring up the Istio networking control plane containers:
-
- {{< text bash >}}
- $ docker-compose -f install/consul/istio.yaml up -d
- {{< /text >}}
-
- {{< warning >}}
- The Consul install only configures Istio Pilot. To use Istio Mixer (policy enforcement and telemetry reporting) or Istio Galley, further installation steps
- will be necessary. Those steps are beyond the scope of this guide.
- {{< /warning >}}
-
-1. Confirm that all Docker containers are running:
-
- {{< text bash >}}
- $ docker ps -a
- {{< /text >}}
-
- {{< tip >}}
- If the Istio Pilot container terminates, ensure that you ran the `kubectl config` commands below and re-run the command from the previous step.
- {{< /tip >}}
-
-1. Configure `kubectl` to use mapped local port for the API server:
-
- {{< text bash >}}
- $ kubectl config set-context istio --cluster=istio
- $ kubectl config set-cluster istio --server=http://localhost:8080
- $ kubectl config use-context istio
- {{< /text >}}
-
-## Deploy your application
-
-You can now deploy your own application or one of the sample applications provided with the
-installation like[Bookinfo](/docs/examples/bookinfo/#if-you-are-running-on-docker-with-consul).
-
-{{< tip >}}
-Since there is no concept of pods in a Docker setup, the Istio
-sidecar runs in the same container as the application. We will
-use [Registrator](https://gliderlabs.github.io/registrator/latest/) to
-automatically register instances of services in the Consul service
-registry.
-
-The application must use HTTP/1.1 or HTTP/2.0 protocol for all its HTTP traffic because HTTP/1.0 is not supported.
-{{< /tip >}}
-
-{{< text bash >}}
-$ docker-compose -f