Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
112 changes: 6 additions & 106 deletions docs/install/Knative-custom-install.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,113 +44,13 @@ traffic routing and ingress. You have the option of injecting Istio sidecars and
enabling the Istio service mesh, but it's not required for all Knative
components.

You should first install the `istio-crds.yaml` file to ensure that the Istio
[Custom Resource Definitions (CRD)](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/)
are created before installing Istio.
If your cloud platform offers a managed Istio installation, we recommend
installing Istio that way, unless you need the ability to customize your
installation.

### Choosing an Istio installation

You can Istio with or without a service mesh:

- _automatic sidecar injection_: Enables the Istio service mesh by
[automatically injecting the Istio sidecars](https://istio.io/docs/setup/kubernetes/sidecar-injection/#automatic-sidecar-injection).
The sidecars are injected into each pod of your cluster as each pod is
created.

- _manual sidecar injection_: Provides your Knative installation with traffic
routing and ingress, without the Istio service mesh. You do have the option of
later enabling the service mesh if you
[manually inject the Istio sidecars](https://istio.io/docs/setup/kubernetes/sidecar-injection/#manual-sidecar-injection).

If you are just getting started with Knative, you should choose automatic
sidecar injection and enable the Istio service mesh.

Due to current dependencies, some installable Knative options require the Istio
service mesh. If you install any of the following options, you must install
`istio.yaml` so that automatic sidecar injection is enabled:

- [Knative Eventing](https://github.com/knative/eventing)
- [Knative Eventing Sources](https://github.com/knative/eventing-sources)
- [Observability plugins](../serving/installing-logging-metrics-traces.md)

#### Istio installation options

| Istio Install Filename | Description |
| ----------------------- | ---------------------------------------------------------------------- |
| [`istio-crds.yaml`][a]† | Creates CRDs before installing Istio. |
| [`istio.yaml`][b]† | Install Istio with service mesh enabled (automatic sidecar injection). |
| [`istio-lean.yaml`][c] | Install Istio and disable the service mesh by default. |

† These are the recommended standard install files suitable for most use cases.

[a]:
https://raw.githubusercontent.com/knative/serving/v0.5.2/third_party/istio-1.0.7/istio-crds.yaml
[b]:
https://raw.githubusercontent.com/knative/serving/v0.5.2/third_party/istio-1.0.7/istio.yaml
[c]: https://github.com/knative/serving/releases/download/v0.5.2/istio-lean.yaml

### Installing Istio

1. If you choose to install the Istio service mesh with automatic sidecar
injection, you must ensure that the
[`MutatingAdmissionWebhook` admission controller](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.11/#mutatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io)
is enabled on your cluster by running the following command:

```bash
kubectl api-versions | grep admissionregistration
```

Result:

```bash
admissionregistration.k8s.io/v1beta1
```

If `admissionregistration.k8s.io/v1beta1` is not listed, follow the
[Kubernetes instructions about enabling the `MutatingAdmissionWebhook` admission controller](https://kubernetes.io/docs/admin/admission-controllers/#how-do-i-turn-on-an-admission-controller).

For example, you add `--enable-admission-plugins=MutatingAdmissionWebhook` to
the `/etc/kubernetes/manifests/kube-apiserver.yaml` file.

1. Create the Istio CRDs on your cluster:

```bash
kubectl apply --filename https://raw.githubusercontent.com/knative/serving/v0.5.2/third_party/istio-1.0.7/istio-crds.yaml
```

1. Install Istio by specifying the filename in the `kubectl apply` command:

```bash
kubectl apply --filename https://raw.githubusercontent.com/knative/serving/v0.5.2/third_party/istio-1.0.7/[FILENAME].yaml
```

where `[FILENAME]` is the name of the Istio file that you want to install.
Examples:

- `istio.yaml`
- `istio-lean.yaml`

1. If you chose to install the Istio service mesh with automatic sidecar
injection, you must label the default namespace with
`istio-injection=enabled`:

```bash
kubectl label namespace default istio-injection=enabled
```

Important: You should set the `istio-injection` namespace, if you intend on
later enabling the Istio service mesh through manual sidecar injection.

1. View the status of your Istio installation. It might take a few seconds, so
rerun the following command until all of the pods show a `STATUS` of
`Running` or `Completed`:

```bash
kubectl get pods --namespace istio-system
```

> Tip: You can append the `--watch` flag to the `kubectl get` commands to
> view the pod status in realtime. You use `CTRL + C` to exit watch mode.
If you prefer to install Istio manually, if your cloud provider doesn't offer
a managed Istio installation, or if you're installing Knative locally using Minkube
or similar, see the [Installing Istio for Knative guide](./installing-istio.md).

## Installing Knative components

Expand Down
36 changes: 9 additions & 27 deletions docs/install/Knative-with-AKS.md
Original file line number Diff line number Diff line change
Expand Up @@ -137,35 +137,17 @@ recommended configuration for a cluster is:
> Gloo is not currently compatible with the Knative Eventing component.
> [Click here](./Knative-with-Gloo.md) to install Knative with Gloo.

Knative depends on Istio.
Knative depends on Istio. If your cloud platform offers a managed Istio
installation, we recommend installing Istio that way, unless you need the
ability to customize your installation.

1. Install Istio:
If you prefer to install Istio manually, if your cloud provider doesn't offer
a managed Istio installation, or if you're installing Knative locally using
Minkube or similar, see the
[Installing Istio for Knative guide](./installing-istio.md).

```bash
kubectl apply --filename https://raw.githubusercontent.com/knative/serving/v0.5.2/third_party/istio-1.0.7/istio-crds.yaml && \
kubectl apply --filename https://raw.githubusercontent.com/knative/serving/v0.5.2/third_party/istio-1.0.7/istio.yaml
```

Note: the resources (CRDs) defined in the `istio-crds.yaml`file are also
included in the `istio.yaml` file, but they are pulled out so that the CRD
definitions are created first. If you see an error when creating resources
about an unknown type, run the second `kubectl apply` command again.

1. Label the default namespace with `istio-injection=enabled`:

```bash
kubectl label namespace default istio-injection=enabled
```

1. Monitor the Istio components until all of the components show a `STATUS` of
`Running` or `Completed`: `bash kubectl get pods --namespace istio-system`

It will take a few minutes for all the components to be up and running; you can
rerun the command to see the current status.

> Note: Instead of rerunning the command, you can add `--watch` to the above
> command to view the component's status updates in real time. Use CTRL + C to
> exit watch mode.
You must install Istio on your Kubernetes cluster before continuing with these
instructions to install Knative.

## Installing Knative

Expand Down
39 changes: 9 additions & 30 deletions docs/install/Knative-with-Gardener.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,36 +72,15 @@ of this guide be sure you have `export KUBECONFIG=my-cluster.yaml` set.

## Installing Istio

Knative depends on Istio.

1. Install Istio:

```bash
kubectl apply --filename https://raw.githubusercontent.com/knative/serving/v0.5.2/third_party/istio-1.0.7/istio-crds.yaml && \
kubectl apply --filename https://raw.githubusercontent.com/knative/serving/v0.5.2/third_party/istio-1.0.7/istio.yaml
```

Note: the resources (CRDs) defined in the `istio-crds.yaml`file are also
included in the `istio.yaml` file, but they are pulled out so that the CRD
definitions are created first. If you see an error when creating resources
about an unknown type, run the second `kubectl apply` command again.

2. Label the default namespace with `istio-injection=enabled`:
```bash
kubectl label namespace default istio-injection=enabled
```
3. Monitor the Istio components until all of the components show a `STATUS` of
`Running` or `Completed`:
```bash
kubectl get pods --namespace istio-system
```

It will take a few minutes for all the components to be up and running; you can
rerun the command to see the current status.

> Note: Instead of rerunning the command, you can add `--watch` to the above
> command to view the component's status updates in real time. Use CTRL + C to
> exit watch mode.
Knative depends on Istio. If your cloud platform offers a managed Istio
installation, we recommend installing Istio that way, unless you need the
ability to customize your installation.

Otherwise, see the
[Installing Istio for Knative guide](./installing-istio.md) to install Istio.

You must install Istio on your Kubernetes cluster before continuing with these
instructions to install Knative.

## Installing Knative

Expand Down
6 changes: 6 additions & 0 deletions docs/install/Knative-with-ICP.md
Original file line number Diff line number Diff line change
Expand Up @@ -125,6 +125,12 @@ the`knative-build` and `knative-monitoring` namespaces.

[Follow the instructions to install and run Istio in IBM Cloud Private](https://istio.io/docs/setup/kubernetes/quick-start-ibm/#ibm-cloud-private).

If you prefer to install Istio manually, see the
[Installing Istio for Knative guide](./installing-istio.md).

You must install Istio on your Kubernetes cluster before continuing with these
instructions to install Knative.

## Installing Knative

The following commands install all available Knative components as well as the
Expand Down
37 changes: 9 additions & 28 deletions docs/install/Knative-with-IKS.md
Original file line number Diff line number Diff line change
Expand Up @@ -154,36 +154,17 @@ forward.

### Installing Istio

Knative depends on Istio.
Knative depends on Istio. If your cloud platform offers a managed Istio
installation, we recommend installing Istio that way, unless you need the
ability to customize your installation.

1. Install Istio:
If you prefer to install Istio manually, if your cloud provider doesn't offer
a managed Istio installation, or if you're installing Knative locally using
Minkube or similar, see the
[Installing Istio for Knative guide](./installing-istio.md).

```bash
kubectl apply --filename https://raw.githubusercontent.com/knative/serving/v0.5.2/third_party/istio-1.0.7/istio-crds.yaml && \
kubectl apply --filename https://raw.githubusercontent.com/knative/serving/v0.5.2/third_party/istio-1.0.7/istio.yaml
```

Note: the resources (CRDs) defined in the `istio-crds.yaml`file are also
included in the `istio.yaml` file, but they are pulled out so that the CRD
definitions are created first. If you see an error when creating resources
about an unknown type, run the second `kubectl apply` command again.

1. Label the default namespace with `istio-injection=enabled`:
```bash
kubectl label namespace default istio-injection=enabled
```
1. Monitor the Istio components until all of the components show a `STATUS` of
`Running` or `Completed`:
```bash
kubectl get pods --namespace istio-system
```

It will take a few minutes for all the components to be up and running; you can
rerun the command to see the current status.

> Note: Instead of rerunning the command, you can add `--watch` to the above
> command to view the component's status updates in real time. Use CTRL+C to
> exit watch mode.
You must install Istio on your Kubernetes cluster before continuing with these
instructions to install Knative.

### Installing Knative

Expand Down
41 changes: 13 additions & 28 deletions docs/install/Knative-with-PKS.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,34 +48,19 @@ https://docs.pivotal.io/runtimes/pks/1-1/cluster-credentials.html.

## Installing Istio

Knative depends on Istio. Istio workloads require privileged mode for Init
Containers

1. Install Istio:

```bash
kubectl apply --filename https://raw.githubusercontent.com/knative/serving/v0.5.2/third_party/istio-1.0.7/istio-crds.yaml && \
kubectl apply --filename https://raw.githubusercontent.com/knative/serving/v0.5.2/third_party/istio-1.0.7/istio.yaml
```

Note: the resources (CRDs) defined in the `istio-crds.yaml`file are also
included in the `istio.yaml` file, but they are pulled out so that the CRD
definitions are created first. If you see an error when creating resources
about an unknown type, run the second `kubectl apply` command again.

1. Label the default namespace with `istio-injection=enabled`:
```bash
kubectl label namespace default istio-injection=enabled
```
1. Monitor the Istio components until all of the components show a `STATUS` of
`Running` or `Completed`: `bash kubectl get pods --namespace istio-system`

It will take a few minutes for all the components to be up and running; you can
rerun the command to see the current status.

> Note: Instead of rerunning the command, you can add `--watch` to the above
> command to view the component's status updates in real time. Use CTRL + C to
> exit watch mode.
Knative depends on Istio. If your cloud platform offers a managed Istio
installation, we recommend installing Istio that way, unless you need the
ability to customize your installation. For example, the
[GKE Install Guide](./knative-with-gke.md) includes the instructions for
installing Istio on your cluster using `gcloud`.

If you prefer to install Istio manually, if your cloud provider doesn't offer
a managed Istio installation, or if you're installing Knative locally using
Minkube or similar, see the
[Installing Istio for Knative guide](./installing-istio.md).

You must install Istio on your Kubernetes cluster before continuing with these
instructions to install Knative.

## Installing Knative

Expand Down
47 changes: 13 additions & 34 deletions docs/install/Knative-with-any-k8s.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,40 +21,19 @@ commands will need to be adjusted for use in a Windows environment.

## Installing Istio

Knative depends on Istio. Istio workloads require privileged mode for Init
Containers.

1. Install Istio:

```bash
kubectl apply --filename https://raw.githubusercontent.com/knative/serving/v0.5.2/third_party/istio-1.0.7/istio-crds.yaml && \
kubectl apply --filename https://raw.githubusercontent.com/knative/serving/v0.5.2/third_party/istio-1.0.7/istio.yaml
```

Note: the resources (CRDs) defined in the `istio-crds.yaml`file are also
included in the `istio.yaml` file, but they are pulled out so that the CRD
definitions are created first. If you see an error when creating resources
about an unknown type, run the second `kubectl apply` command again.

1. Label the default namespace with `istio-injection=enabled`:

```bash
kubectl label namespace default istio-injection=enabled
```

1. Monitor the Istio components until all of the components show a `STATUS` of
`Running` or `Completed`:

```bash
kubectl get pods --namespace istio-system
```

It will take a few minutes for all the components to be up and running; you can
rerun the command to see the current status.

> Note: Instead of rerunning the command, you can add `--watch` to the above
> command to view the component's status updates in real time. Use CTRL + C to
> exit watch mode.
Knative depends on Istio. If your cloud platform offers a managed Istio
installation, we recommend installing Istio that way, unless you need the
ability to customize your installation. For example, the
[GKE Install Guide](./knative-with-gke.md) includes the instructions for
installing Istio on your cluster using `gcloud`.

If you prefer to install Istio manually, if your cloud provider doesn't offer
a managed Istio installation, or if you're installing Knative locally using
Minkube or similar, see the
[Installing Istio for Knative guide](./installing-istio.md).

You must install Istio on your Kubernetes cluster before continuing with these
instructions to install Knative.

## Installing Knative

Expand Down
Loading