From 1cad380318954f6c885915e2652e787e9ed42176 Mon Sep 17 00:00:00 2001 From: Richie Escarez Date: Tue, 13 Nov 2018 17:03:49 -0800 Subject: [PATCH 01/13] move all install comps to adv file --- install/installing-custom-components.md | 198 ++++++++++++++++++++++++ 1 file changed, 198 insertions(+) create mode 100644 install/installing-custom-components.md diff --git a/install/installing-custom-components.md b/install/installing-custom-components.md new file mode 100644 index 00000000000..2024f99545e --- /dev/null +++ b/install/installing-custom-components.md @@ -0,0 +1,198 @@ +# Installing Individual Knative Components + +Use this guide to perform custom installations of the Knative components on +your existing Kubernetes clusters. Utilizes Knative's pluggable ability to +install only what you want and in the clusters you choose. + +The steps covered in the guide are for advanced operators who want to take full +control over the installation experience. Installing individual Knative components +requires that you to run multiple and separate installation commands. + +## Before you begin + +* If you are new to Knative, you should instead [install one of the default + installation packages](./README.md). Follow the host specific Knative installation + instructions for the default package to help you get up and running with the + least effort. Installing a default package also ensures that you can run all the + [Knative Serving Samples](https://github.com/knative/docs/blob/master/serving/samples/README.md). + +* This guide supports `bash` in a MacOS or Linux environment. A Windows environment is + not documented here but it is possible for you to run corresponding commands. + +* This installation guide assumes that you have an existing Kubernetes cluster, + on which you're comfortable installing and running _alpha_ level software. + +* Kubernetes requirements: + + * Knative requires that the version of your Kubernetes cluster is v1.10 or newer. + + * Your Kubernetes cluster must also have the + [MutatingAdmissionWebhook admission controller](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#how-do-i-turn-on-an-admission-controller) + enabled. + + * The version of your + [`kubectl` CLI tool](https://kubernetes.io/docs/tasks/tools/install-kubectl/) + must be v1.10 or newer. + +## Installing Istio + +Knative depends on [Istio](https://istio.io/docs/concepts/what-is-istio/) for +the service mesh. You can choose the default package to install the Istio service mesh with +[automatic sidecar injection](https://istio.io/docs/setup/kubernetes/sidecar-injection). +You should install the default package if you are just getting started with Knative. + +Alternatively, you can choose to install Istio with manual sidecar injection or with support for +[Custom Resource Definitions (CRD)](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/). + +### Choosing a Istio installation package + +You can choose from the following installation packages to install the Istio +service mesh on you cluster: + +| Istio Package Filename | Description | +| ---------------------- | ----------------- | +| [`istio.yaml`][a] | Default: Configured for Automatic Sidecar Injection. | +| [`istio-crds.yaml`][b] | Support for Custom Resource Definitions. **Q: This have to do with "Pilot"? Why choose this?** | +| [`istio-lean.yaml`][c] | Configured for Manual Sidecar Injection. **Q: When or why should users choose this?** | + +[a]: https://github.com/knative/serving/releases/download/v0.2.1/istio.yaml +[b]: https://github.com/knative/serving/releases/download/v0.2.1/istio-crds.yaml +[c]: https://github.com/knative/serving/releases/download/v0.2.1/istio-lean.yaml + +### Installing Istio installation packages + +1. Install a Istio package with the `kubectl apply` command by specifying the + package filename: + ```bash + kubectl apply --filename https://github.com/knative/serving/releases/download/v0.2.1/[FILENAME].yaml + ``` + + where `[FILENAME]` is the name of the Istio package that you want to install. Example: + `https://github.com/knative/serving/releases/download/v0.2.1/istio.yaml + ` +1. Label the default namespace with `istio-injection=enabled`: **Q: For which install package is this needed? Or is this needed for all Istio installs?** + ```bash + kubectl label namespace default istio-injection=enabled + ``` +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. + +## Installing Knative components + +You can choose to separately install only the individual Knative components +that you want. You can also later add a pre-configured observability plugin to enable +monitoring, logging, and tracing in your cluster. + +Installing individual Knative components excludes other features like +observabitliy plugins. Therefore, you must separately install and run the +`kubectl apply` command for each component or plugin that you want installed. + +### Choosing Knative installation packages + +The following section describes all the Knative installation packages from which +you can choose. + +This installation method is suggested for experienced operators. If you are new to +Knative, you should [install the default package](./README.md) to help you get up +and running with the least effort. + +| Knative Package Filename | Serving Component | Build Component | Eventing Component | Observability Plugin* | +| ------------------------ | ----------------- | --------------- | ------------------ | ----------------- | +| Default: [`release.yaml`][1] ([knative/serving repo][1.1]) | Included | Included | - | [ELK stack][2] | +| [`release-no-mon.yaml`][3] | Included | Included | - | - | +| [`release-lite.yaml`][4] | Included | Included | - | Includes support for a [`fluentd` based observability plugin][5] that you provide. | +| [`build.yaml`][6] ([`release.yaml` from knative/build repo][6.1]) | - | Included | - | - | +| [`eventing.yaml`][7] | - | - | Included | - | +| [`release.yaml`][8] ([knative/eventing-sources repo][8.1]) | - | - | Included | - | +| [`serving.yaml`][9] | Included | - | - | - | + +_*_ See [Installing observability plugins](../serving/installing-logging-metrics-traces.md) +for details about the supported plugins and how to add monitoring, logging, and +tracing to your cluster. + +[1]: https://github.com/knative/serving/releases/download/v0.2.1/release.yaml +[1.1]: https://github.com/knative/serving/releases/tag/v0.2.1 +[2]: https://www.elastic.co/elk-stack +[3]: https://github.com/knative/serving/releases/download/v0.2.1/release-no-mon.yaml +[4]: https://github.com/knative/serving/releases/download/v0.2.1/release-lite.yaml +[5]: ../serving/setting-up-a-logging-plugin.md +[6]: https://github.com/knative/build/releases/tag/v0.2.0 +[6.1]: https://github.com/knative/eventing/releases/tag/v0.2.0 +[7]: https://github.com/knative/eventing/releases/download/v0.2.0/eventing.yaml +[8]: https://github.com/knative/eventing-sources/releases/download/v0.2.0/release.yaml +[8.1]: https://github.com/knative/eventing-sources/releases/tag/v0.2.0 +[9]: https://github.com/knative/serving/releases/download/v0.2.1/serving.yaml + +Note: Each of the installable Knative resources are also listed in the Assets +section of each Knative component's release page: +* [Serving v0.2.1](https://github.com/knative/serving/releases/tag/v0.2.1) +* [Build v0.2.0](https://github.com/knative/build/releases/tag/v0.2.0) +* [Eventing v0.2.0](https://github.com/knative/eventing/releases/tag/v0.2.0) + +### Installing individual Knative components + +**Tip**: From the table above, you can copy and paste the URL and filename of +the installation package that you want to install. + +1. To install a specific component, run the `kubectl apply` command and specify the + installation package filename: + + ```bash + kubectl apply --filename https://github.com/knative/[COMPONENT]/releases/download/[VERSION]/[FILENAME].yaml + ``` + + where `[COMPONENT]`, `[VERSION]`, and `[FILENAME]` are the Knative component, release version, and filename of the installable resource. Examples: + * `https://github.com/knative/build/releases/download/v0.2.0/release.yaml` + * `https://github.com/knative/eventing/releases/download/v0.2.0/eventing.yaml` + * `https://github.com/knative/eventing-sources/releases/download/v0.2.0/release.yaml` + * `https://github.com/knative/serving/releases/download/v0.2.1/serving.yaml` + +1. Depending on what you choose to install, you view the status of your + installation by running one or more of the following commands. It + might take a few seconds so rerun the commands until all of the components + show a `STATUS` of `Running`: + + ```bash + kubectl get pods --namespace knative-build + kubectl get pods --namespace knative-eventing + kubectl get pods --namespace knative-eventing-sources + kubectl get pods --namespace knative-serving + ``` + + > 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. + +1. If you installed one of the installation packages that include an observability + plugin, you can run the following command to ensure that the `knative-monitoriing` + pods show a `STATUS` of `Running`: + + ```bash + kubectl get pods --namespace knative-monitoring + ``` + +You are now ready to deploy an app, create a build, or start sending and receiving +events in your Knative cluster. + +## What's next + +Depending on which of the Knative components that you chose to install, you can +use one of the following documents to help get you started in Knative: + +* [Getting Started with Knative App Deployment](./getting-started-knative-app.md). + + * [Knative Serving sample apps](../serving/samples/README.md). + +* [Creating a simple Knative Build](../build/creating-builds.md). + + * [Knative Build templates](../build-templates) + +* [Knative Eventing overview](../eventing/README.md). + + * [Knative Eventing code samples](../eventing/samples). From bd175375973c42b75ff2dd49db90835e4b241a6e Mon Sep 17 00:00:00 2001 From: Richie Escarez Date: Fri, 16 Nov 2018 14:33:44 -0800 Subject: [PATCH 02/13] recovering review comments --- install/installing-custom-components.md | 81 ++++++++++++++++--------- 1 file changed, 52 insertions(+), 29 deletions(-) diff --git a/install/installing-custom-components.md b/install/installing-custom-components.md index 2024f99545e..a557bd0fa84 100644 --- a/install/installing-custom-components.md +++ b/install/installing-custom-components.md @@ -1,11 +1,11 @@ # Installing Individual Knative Components -Use this guide to perform custom installations of the Knative components on -your existing Kubernetes clusters. Utilizes Knative's pluggable ability to -install only what you want and in the clusters you choose. +Use this guide to perform custom installations of Knative on your existing +Kubernetes clusters. Knative's pluggable components allow you to +install only what you want in each of your clusters. -The steps covered in the guide are for advanced operators who want to take full -control over the installation experience. Installing individual Knative components +The steps covered in the guide are for advanced operators who want to +customize each Knative installation. Installing individual Knative components requires that you to run multiple and separate installation commands. ## Before you begin @@ -16,8 +16,8 @@ requires that you to run multiple and separate installation commands. least effort. Installing a default package also ensures that you can run all the [Knative Serving Samples](https://github.com/knative/docs/blob/master/serving/samples/README.md). -* This guide supports `bash` in a MacOS or Linux environment. A Windows environment is - not documented here but it is possible for you to run corresponding commands. +* The following steps use `bash` for a MacOS or Linux environment; for Windows, + some commands might need adjustment. * This installation guide assumes that you have an existing Kubernetes cluster, on which you're comfortable installing and running _alpha_ level software. @@ -44,7 +44,7 @@ You should install the default package if you are just getting started with Knat Alternatively, you can choose to install Istio with manual sidecar injection or with support for [Custom Resource Definitions (CRD)](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/). -### Choosing a Istio installation package +### Choosing an Istio installation package You can choose from the following installation packages to install the Istio service mesh on you cluster: @@ -61,7 +61,7 @@ service mesh on you cluster: ### Installing Istio installation packages -1. Install a Istio package with the `kubectl apply` command by specifying the +1. Install an Istio package with the `kubectl apply` command by specifying the package filename: ```bash kubectl apply --filename https://github.com/knative/serving/releases/download/v0.2.1/[FILENAME].yaml @@ -86,18 +86,13 @@ service mesh on you cluster: ## Installing Knative components -You can choose to separately install only the individual Knative components -that you want. You can also later add a pre-configured observability plugin to enable -monitoring, logging, and tracing in your cluster. - -Installing individual Knative components excludes other features like -observabitliy plugins. Therefore, you must separately install and run the -`kubectl apply` command for each component or plugin that you want installed. +You can install each Knative component independently or use the default packages +to install multiple components. The individual component packages exclude +an observability plugin but you have the option to install one later. ### Choosing Knative installation packages -The following section describes all the Knative installation packages from which -you can choose. +The following Knative installation packages are available. This installation method is suggested for experienced operators. If you are new to Knative, you should [install the default package](./README.md) to help you get up @@ -141,19 +136,48 @@ section of each Knative component's release page: **Tip**: From the table above, you can copy and paste the URL and filename of the installation package that you want to install. -1. To install a specific component, run the `kubectl apply` command and specify the - installation package filename: +1. To install an installation package, run the `kubectl apply` command + and specify the package path and filename: - ```bash - kubectl apply --filename https://github.com/knative/[COMPONENT]/releases/download/[VERSION]/[FILENAME].yaml - ``` + * To install an individual package: + ```bash + kubectl apply --filename [INSTALL_PACKAGE] + ``` + + * To install multiple packages, you can append additional `--filename [INSTALL_PACKAGE]` + flags to the `kubectl apply` command: + ```bash + kubectl apply --filename [INSTALL_PACKAGE] --filename [INSTALL_PACKAGE] \ + --filename [INSTALL_PACKAGE] + ``` + + Where [`INSTALL_PACKAGE`] is the URL path and filename of the a Knative installation package: + + `https://github.com/knative/[COMPONENT]/releases/download/[VERSION]/[FILENAME].yaml` - where `[COMPONENT]`, `[VERSION]`, and `[FILENAME]` are the Knative component, release version, and filename of the installable resource. Examples: + And `[COMPONENT]`, `[VERSION]`, and `[FILENAME]` are the Knative component, release version, and filename of the installable resource. For example: * `https://github.com/knative/build/releases/download/v0.2.0/release.yaml` * `https://github.com/knative/eventing/releases/download/v0.2.0/eventing.yaml` * `https://github.com/knative/eventing-sources/releases/download/v0.2.0/release.yaml` * `https://github.com/knative/serving/releases/download/v0.2.1/serving.yaml` + + **Example install commands:** + + * To install the default package that includes both Knative Serving and Build: + + ```bash + kubectl apply -f https://github.com/knative/serving/releases/download/v0.2.1/release.yaml + ``` + + * To install all three Knative components without an observibility plugin: + + ```bash + kubectl apply -f https://github.com/knative/serving/releases/download/v0.2.1/serving.yaml \ + -f https://github.com/knative/build/releases/download/v0.2.0/release.yaml \ + -f https://github.com/knative/eventing/releases/download/v0.2.0/eventing.yaml + ``` + 1. Depending on what you choose to install, you view the status of your installation by running one or more of the following commands. It might take a few seconds so rerun the commands until all of the components @@ -169,9 +193,8 @@ the installation package that you want to install. > 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. -1. If you installed one of the installation packages that include an observability - plugin, you can run the following command to ensure that the `knative-monitoriing` - pods show a `STATUS` of `Running`: +1. If you installed an observability plugin, run the following command to ensure + that the `knative-monitoring` pods show a `STATUS` of `Running`: ```bash kubectl get pods --namespace knative-monitoring @@ -182,8 +205,8 @@ events in your Knative cluster. ## What's next -Depending on which of the Knative components that you chose to install, you can -use one of the following documents to help get you started in Knative: +Depending on the Knative components you installed, the following guides can help +you get started with Knative: * [Getting Started with Knative App Deployment](./getting-started-knative-app.md). From 8a66979f39614acb9a412e7c4da6940ccff6b405 Mon Sep 17 00:00:00 2001 From: Richie Escarez Date: Fri, 16 Nov 2018 15:05:42 -0800 Subject: [PATCH 03/13] filename change --- ...{installing-custom-components.md => Knative-custom-install.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename install/{installing-custom-components.md => Knative-custom-install.md} (100%) diff --git a/install/installing-custom-components.md b/install/Knative-custom-install.md similarity index 100% rename from install/installing-custom-components.md rename to install/Knative-custom-install.md From 482150d5e083b8f0844f484cfabf8b30511bd767 Mon Sep 17 00:00:00 2001 From: RichieEscarez Date: Tue, 20 Nov 2018 16:07:35 -0800 Subject: [PATCH 04/13] title update --- install/Knative-custom-install.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install/Knative-custom-install.md b/install/Knative-custom-install.md index a557bd0fa84..59453afe236 100644 --- a/install/Knative-custom-install.md +++ b/install/Knative-custom-install.md @@ -1,4 +1,4 @@ -# Installing Individual Knative Components +# Performing a Custom Knative Installation Use this guide to perform custom installations of Knative on your existing Kubernetes clusters. Knative's pluggable components allow you to From ed0413ec1615311750ab5786340cb0c525d12557 Mon Sep 17 00:00:00 2001 From: RichieEscarez Date: Tue, 20 Nov 2018 16:13:39 -0800 Subject: [PATCH 05/13] There can be multiple components in a knative package --- install/Knative-custom-install.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/install/Knative-custom-install.md b/install/Knative-custom-install.md index 59453afe236..1bdca84a1f1 100644 --- a/install/Knative-custom-install.md +++ b/install/Knative-custom-install.md @@ -131,12 +131,12 @@ section of each Knative component's release page: * [Build v0.2.0](https://github.com/knative/build/releases/tag/v0.2.0) * [Eventing v0.2.0](https://github.com/knative/eventing/releases/tag/v0.2.0) -### Installing individual Knative components +### Installing Knative packages **Tip**: From the table above, you can copy and paste the URL and filename of the installation package that you want to install. -1. To install an installation package, run the `kubectl apply` command +1. To install a Knative package, run the `kubectl apply` command and specify the package path and filename: * To install an individual package: From 5529dffa5a191b14eac91b3b113f113501db82b8 Mon Sep 17 00:00:00 2001 From: Richie Escarez Date: Tue, 20 Nov 2018 16:33:51 -0800 Subject: [PATCH 06/13] fix links --- install/Knative-custom-install.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/install/Knative-custom-install.md b/install/Knative-custom-install.md index 1bdca84a1f1..bd60ad245a3 100644 --- a/install/Knative-custom-install.md +++ b/install/Knative-custom-install.md @@ -103,7 +103,7 @@ and running with the least effort. | Default: [`release.yaml`][1] ([knative/serving repo][1.1]) | Included | Included | - | [ELK stack][2] | | [`release-no-mon.yaml`][3] | Included | Included | - | - | | [`release-lite.yaml`][4] | Included | Included | - | Includes support for a [`fluentd` based observability plugin][5] that you provide. | -| [`build.yaml`][6] ([`release.yaml` from knative/build repo][6.1]) | - | Included | - | - | +| [`build.yaml`][6] ([knative/serving repo][1.1])
Or [`release.yaml`][6.1] from knative/build repo][6.2]) | - | Included | - | - | | [`eventing.yaml`][7] | - | - | Included | - | | [`release.yaml`][8] ([knative/eventing-sources repo][8.1]) | - | - | Included | - | | [`serving.yaml`][9] | Included | - | - | - | @@ -118,18 +118,20 @@ tracing to your cluster. [3]: https://github.com/knative/serving/releases/download/v0.2.1/release-no-mon.yaml [4]: https://github.com/knative/serving/releases/download/v0.2.1/release-lite.yaml [5]: ../serving/setting-up-a-logging-plugin.md -[6]: https://github.com/knative/build/releases/tag/v0.2.0 -[6.1]: https://github.com/knative/eventing/releases/tag/v0.2.0 +[6]: https://github.com/knative/serving/releases/download/v0.2.1/build.yaml +[6.1]: https://github.com/knative/build/releases/download/v0.2.0/release.yaml +[6.2]: https://github.com/knative/build/releases/tag/v0.2.0 [7]: https://github.com/knative/eventing/releases/download/v0.2.0/eventing.yaml +[7.1]: https://github.com/knative/eventing/releases/tag/v0.2.0 [8]: https://github.com/knative/eventing-sources/releases/download/v0.2.0/release.yaml [8.1]: https://github.com/knative/eventing-sources/releases/tag/v0.2.0 [9]: https://github.com/knative/serving/releases/download/v0.2.1/serving.yaml Note: Each of the installable Knative resources are also listed in the Assets section of each Knative component's release page: -* [Serving v0.2.1](https://github.com/knative/serving/releases/tag/v0.2.1) -* [Build v0.2.0](https://github.com/knative/build/releases/tag/v0.2.0) -* [Eventing v0.2.0](https://github.com/knative/eventing/releases/tag/v0.2.0) +* [Serving v0.2.1][1.1] +* [Build v0.2.0][6.2] +* [Eventing v0.2.0][7.1] ### Installing Knative packages From 1470b6b06cfa4cbbaf0ede4b4cdc2f217632c990 Mon Sep 17 00:00:00 2001 From: Richie Escarez Date: Tue, 20 Nov 2018 16:35:44 -0800 Subject: [PATCH 07/13] new serving version --- install/Knative-custom-install.md | 34 +++++++++++++++---------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/install/Knative-custom-install.md b/install/Knative-custom-install.md index bd60ad245a3..954009e123a 100644 --- a/install/Knative-custom-install.md +++ b/install/Knative-custom-install.md @@ -55,20 +55,20 @@ service mesh on you cluster: | [`istio-crds.yaml`][b] | Support for Custom Resource Definitions. **Q: This have to do with "Pilot"? Why choose this?** | | [`istio-lean.yaml`][c] | Configured for Manual Sidecar Injection. **Q: When or why should users choose this?** | -[a]: https://github.com/knative/serving/releases/download/v0.2.1/istio.yaml -[b]: https://github.com/knative/serving/releases/download/v0.2.1/istio-crds.yaml -[c]: https://github.com/knative/serving/releases/download/v0.2.1/istio-lean.yaml +[a]: https://github.com/knative/serving/releases/download/v0.2.2/istio.yaml +[b]: https://github.com/knative/serving/releases/download/v0.2.2/istio-crds.yaml +[c]: https://github.com/knative/serving/releases/download/v0.2.2/istio-lean.yaml ### Installing Istio installation packages 1. Install an Istio package with the `kubectl apply` command by specifying the package filename: ```bash - kubectl apply --filename https://github.com/knative/serving/releases/download/v0.2.1/[FILENAME].yaml + kubectl apply --filename https://github.com/knative/serving/releases/download/v0.2.2/[FILENAME].yaml ``` where `[FILENAME]` is the name of the Istio package that you want to install. Example: - `https://github.com/knative/serving/releases/download/v0.2.1/istio.yaml + `https://github.com/knative/serving/releases/download/v0.2.2/istio.yaml ` 1. Label the default namespace with `istio-injection=enabled`: **Q: For which install package is this needed? Or is this needed for all Istio installs?** ```bash @@ -103,7 +103,7 @@ and running with the least effort. | Default: [`release.yaml`][1] ([knative/serving repo][1.1]) | Included | Included | - | [ELK stack][2] | | [`release-no-mon.yaml`][3] | Included | Included | - | - | | [`release-lite.yaml`][4] | Included | Included | - | Includes support for a [`fluentd` based observability plugin][5] that you provide. | -| [`build.yaml`][6] ([knative/serving repo][1.1])
Or [`release.yaml`][6.1] from knative/build repo][6.2]) | - | Included | - | - | +| [`build.yaml`][6] ([knative/serving repo][1.1])
Or [`release.yaml`][6.1] ([knative/build repo][6.2]) | - | Included | - | - | | [`eventing.yaml`][7] | - | - | Included | - | | [`release.yaml`][8] ([knative/eventing-sources repo][8.1]) | - | - | Included | - | | [`serving.yaml`][9] | Included | - | - | - | @@ -112,24 +112,24 @@ _*_ See [Installing observability plugins](../serving/installing-logging-metrics for details about the supported plugins and how to add monitoring, logging, and tracing to your cluster. -[1]: https://github.com/knative/serving/releases/download/v0.2.1/release.yaml -[1.1]: https://github.com/knative/serving/releases/tag/v0.2.1 +[1]: https://github.com/knative/serving/releases/download/v0.2.2/release.yaml +[1.1]: https://github.com/knative/serving/releases/tag/v0.2.2 [2]: https://www.elastic.co/elk-stack -[3]: https://github.com/knative/serving/releases/download/v0.2.1/release-no-mon.yaml -[4]: https://github.com/knative/serving/releases/download/v0.2.1/release-lite.yaml +[3]: https://github.com/knative/serving/releases/download/v0.2.2/release-no-mon.yaml +[4]: https://github.com/knative/serving/releases/download/v0.2.2/release-lite.yaml [5]: ../serving/setting-up-a-logging-plugin.md -[6]: https://github.com/knative/serving/releases/download/v0.2.1/build.yaml +[6]: https://github.com/knative/serving/releases/download/v0.2.2/build.yaml [6.1]: https://github.com/knative/build/releases/download/v0.2.0/release.yaml [6.2]: https://github.com/knative/build/releases/tag/v0.2.0 [7]: https://github.com/knative/eventing/releases/download/v0.2.0/eventing.yaml [7.1]: https://github.com/knative/eventing/releases/tag/v0.2.0 [8]: https://github.com/knative/eventing-sources/releases/download/v0.2.0/release.yaml [8.1]: https://github.com/knative/eventing-sources/releases/tag/v0.2.0 -[9]: https://github.com/knative/serving/releases/download/v0.2.1/serving.yaml +[9]: https://github.com/knative/serving/releases/download/v0.2.2/serving.yaml Note: Each of the installable Knative resources are also listed in the Assets section of each Knative component's release page: -* [Serving v0.2.1][1.1] +* [Serving v0.2.2][1.1] * [Build v0.2.0][6.2] * [Eventing v0.2.0][7.1] @@ -161,7 +161,7 @@ the installation package that you want to install. * `https://github.com/knative/build/releases/download/v0.2.0/release.yaml` * `https://github.com/knative/eventing/releases/download/v0.2.0/eventing.yaml` * `https://github.com/knative/eventing-sources/releases/download/v0.2.0/release.yaml` - * `https://github.com/knative/serving/releases/download/v0.2.1/serving.yaml` + * `https://github.com/knative/serving/releases/download/v0.2.2/serving.yaml` **Example install commands:** @@ -169,13 +169,13 @@ the installation package that you want to install. * To install the default package that includes both Knative Serving and Build: ```bash - kubectl apply -f https://github.com/knative/serving/releases/download/v0.2.1/release.yaml + kubectl apply -f https://github.com/knative/serving/releases/download/v0.2.2/release.yaml ``` * To install all three Knative components without an observibility plugin: ```bash - kubectl apply -f https://github.com/knative/serving/releases/download/v0.2.1/serving.yaml \ + kubectl apply -f https://github.com/knative/serving/releases/download/v0.2.2/serving.yaml \ -f https://github.com/knative/build/releases/download/v0.2.0/release.yaml \ -f https://github.com/knative/eventing/releases/download/v0.2.0/eventing.yaml ``` @@ -216,7 +216,7 @@ you get started with Knative: * [Creating a simple Knative Build](../build/creating-builds.md). - * [Knative Build templates](../build-templates) + * [Knative Build templates](https://github.com/knative/build-templates). * [Knative Eventing overview](../eventing/README.md). From d26d8b939604d5c7186f0822aea134bc040e45f5 Mon Sep 17 00:00:00 2001 From: RichieEscarez Date: Wed, 21 Nov 2018 14:06:17 -0800 Subject: [PATCH 08/13] Update install/Knative-custom-install.md in testing I found that this is not a real namespace so removing --- install/Knative-custom-install.md | 1 - 1 file changed, 1 deletion(-) diff --git a/install/Knative-custom-install.md b/install/Knative-custom-install.md index 954009e123a..c7adaecc04d 100644 --- a/install/Knative-custom-install.md +++ b/install/Knative-custom-install.md @@ -188,7 +188,6 @@ the installation package that you want to install. ```bash kubectl get pods --namespace knative-build kubectl get pods --namespace knative-eventing - kubectl get pods --namespace knative-eventing-sources kubectl get pods --namespace knative-serving ``` From e4f1b4cd745cde06f8b4415083507b5718d7f971 Mon Sep 17 00:00:00 2001 From: Richie Escarez Date: Mon, 3 Dec 2018 15:12:05 -0800 Subject: [PATCH 09/13] Update packages in table --- install/Knative-custom-install.md | 44 ++++++++++++++++++------------- 1 file changed, 26 insertions(+), 18 deletions(-) diff --git a/install/Knative-custom-install.md b/install/Knative-custom-install.md index c7adaecc04d..8ba53484b4e 100644 --- a/install/Knative-custom-install.md +++ b/install/Knative-custom-install.md @@ -100,32 +100,39 @@ and running with the least effort. | Knative Package Filename | Serving Component | Build Component | Eventing Component | Observability Plugin* | | ------------------------ | ----------------- | --------------- | ------------------ | ----------------- | -| Default: [`release.yaml`][1] ([knative/serving repo][1.1]) | Included | Included | - | [ELK stack][2] | -| [`release-no-mon.yaml`][3] | Included | Included | - | - | -| [`release-lite.yaml`][4] | Included | Included | - | Includes support for a [`fluentd` based observability plugin][5] that you provide. | -| [`build.yaml`][6] ([knative/serving repo][1.1])
Or [`release.yaml`][6.1] ([knative/build repo][6.2]) | - | Included | - | - | -| [`eventing.yaml`][7] | - | - | Included | - | -| [`release.yaml`][8] ([knative/eventing-sources repo][8.1]) | - | - | Included | - | -| [`serving.yaml`][9] | Included | - | - | - | +| [**knative/serving**][1] | | | | | +| Default: [`release.yaml`][1.1] | Included | Included | - | [ELK stack][2] with Prometheus and Grafana | +| [`release-no-mon.yaml`][1.2] | Included | Included | - | - | +| [`release-lite.yaml`][1.3] | Included | Included | - | Prometheus and Grafana | +| [`serving.yaml`][1.4] | Included | - | - | - | +| [**knative/build**][6] | | | | | +| [`release.yaml`][6.1] | - | Included | - | - | +| [`build.yaml`][1.5] (from [knative/serving][1]) | - | Included | - | - | +| [**knative/eventing**][7] | | | | | +| [`eventing.yaml`][7.1] | - | - | Included | - | +| [**knative/eventing-sources**][8] | | | | | +| [`release.yaml`][8.1] | - | - | Included | - | +| [`release-with-gcppubsub.yaml`][8.2] | - | - | Included | - | _*_ See [Installing observability plugins](../serving/installing-logging-metrics-traces.md) for details about the supported plugins and how to add monitoring, logging, and tracing to your cluster. -[1]: https://github.com/knative/serving/releases/download/v0.2.2/release.yaml -[1.1]: https://github.com/knative/serving/releases/tag/v0.2.2 +[1]: https://github.com/knative/serving/releases/tag/v0.2.2 +[1.1]: https://github.com/knative/serving/releases/download/v0.2.2/release.yaml +[1.2]: https://github.com/knative/serving/releases/download/v0.2.2/release-no-mon.yaml +[1.3]: https://github.com/knative/serving/releases/download/v0.2.2/release-lite.yaml +[1.4]: https://github.com/knative/serving/releases/download/v0.2.2/serving.yaml +[1.5]: https://github.com/knative/serving/releases/download/v0.2.2/build.yaml [2]: https://www.elastic.co/elk-stack -[3]: https://github.com/knative/serving/releases/download/v0.2.2/release-no-mon.yaml -[4]: https://github.com/knative/serving/releases/download/v0.2.2/release-lite.yaml [5]: ../serving/setting-up-a-logging-plugin.md -[6]: https://github.com/knative/serving/releases/download/v0.2.2/build.yaml +[6]: https://github.com/knative/build/releases/tag/v0.2.0 [6.1]: https://github.com/knative/build/releases/download/v0.2.0/release.yaml -[6.2]: https://github.com/knative/build/releases/tag/v0.2.0 -[7]: https://github.com/knative/eventing/releases/download/v0.2.0/eventing.yaml -[7.1]: https://github.com/knative/eventing/releases/tag/v0.2.0 -[8]: https://github.com/knative/eventing-sources/releases/download/v0.2.0/release.yaml -[8.1]: https://github.com/knative/eventing-sources/releases/tag/v0.2.0 -[9]: https://github.com/knative/serving/releases/download/v0.2.2/serving.yaml +[7]: https://github.com/knative/eventing/releases/tag/v0.2.0 +[7.1]: https://github.com/knative/eventing/releases/download/v0.2.0/eventing.yaml +[8]: https://github.com/knative/eventing-sources/releases/tag/v0.2.0 +[8.1]: https://github.com/knative/eventing-sources/releases/download/v0.2.0/release.yaml +[8.2]: https://github.com/knative/eventing-sources/releases/download/v0.2.0/release-with-gcppubsub.yaml Note: Each of the installable Knative resources are also listed in the Assets section of each Knative component's release page: @@ -188,6 +195,7 @@ the installation package that you want to install. ```bash kubectl get pods --namespace knative-build kubectl get pods --namespace knative-eventing + kubectl get pods --namespace knative-sources kubectl get pods --namespace knative-serving ``` From 70516630a2fbaaba1458188fa7e51d3f92d3af4b Mon Sep 17 00:00:00 2001 From: Richie Escarez Date: Tue, 4 Dec 2018 17:57:04 -0800 Subject: [PATCH 10/13] review feedback, 0.2.1 eventing, eventsource lists --- install/Knative-custom-install.md | 180 +++++++++++++++++++----------- 1 file changed, 113 insertions(+), 67 deletions(-) diff --git a/install/Knative-custom-install.md b/install/Knative-custom-install.md index 8ba53484b4e..7f9e2301cca 100644 --- a/install/Knative-custom-install.md +++ b/install/Knative-custom-install.md @@ -19,30 +19,33 @@ requires that you to run multiple and separate installation commands. * The following steps use `bash` for a MacOS or Linux environment; for Windows, some commands might need adjustment. -* This installation guide assumes that you have an existing Kubernetes cluster, +* This guide assumes that you have an existing Kubernetes cluster, on which you're comfortable installing and running _alpha_ level software. * Kubernetes requirements: - * Knative requires that the version of your Kubernetes cluster is v1.10 or newer. + * Your Kubernetes cluster version must be v1.10 or newer. - * Your Kubernetes cluster must also have the + * The [MutatingAdmissionWebhook admission controller](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#how-do-i-turn-on-an-admission-controller) - enabled. + must be enabled on your Kubernetes cluster. - * The version of your + * Your version of the [`kubectl` CLI tool](https://kubernetes.io/docs/tasks/tools/install-kubectl/) must be v1.10 or newer. ## Installing Istio Knative depends on [Istio](https://istio.io/docs/concepts/what-is-istio/) for -the service mesh. You can choose the default package to install the Istio service mesh with -[automatic sidecar injection](https://istio.io/docs/setup/kubernetes/sidecar-injection). -You should install the default package if you are just getting started with Knative. +the service mesh. + +You should first install the `istio-crds.yaml` package to ensure that the +[Custom Resource Definitions (CRD)](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) are created before installing the Istio packages. -Alternatively, you can choose to install Istio with manual sidecar injection or with support for -[Custom Resource Definitions (CRD)](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/). +You can install the Istio service mesh with +[automatic sidecar injection](https://istio.io/docs/setup/kubernetes/sidecar-injection). +If you are just getting started with Knative, install this package. Alternatively, you +can choose to install Istio with manual sidecar injection. ### Choosing an Istio installation package @@ -51,18 +54,24 @@ service mesh on you cluster: | Istio Package Filename | Description | | ---------------------- | ----------------- | -| [`istio.yaml`][a] | Default: Configured for Automatic Sidecar Injection. | -| [`istio-crds.yaml`][b] | Support for Custom Resource Definitions. **Q: This have to do with "Pilot"? Why choose this?** | -| [`istio-lean.yaml`][c] | Configured for Manual Sidecar Injection. **Q: When or why should users choose this?** | +| [`istio-crds.yaml`][a] | Initially create CRDs before installing Istio. | +| [`istio.yaml`][b] | Install Istio with Automatic Sidecar Injection. | +| [`istio-lean.yaml`][c] | Install Istio with Manual Sidecar Injection. | -[a]: https://github.com/knative/serving/releases/download/v0.2.2/istio.yaml -[b]: https://github.com/knative/serving/releases/download/v0.2.2/istio-crds.yaml +[a]: https://github.com/knative/serving/releases/download/v0.2.2/istio-crds.yaml +[b]: https://github.com/knative/serving/releases/download/v0.2.2/istio.yaml [c]: https://github.com/knative/serving/releases/download/v0.2.2/istio-lean.yaml + + ### Installing Istio installation packages -1. Install an Istio package with the `kubectl apply` command by specifying the - package filename: +1. Create the Istio CRDs on your cluster: + ```bash + kubectl apply --filename https://github.com/knative/serving/releases/download/v0.2.2/istio-crds.yaml + ``` + +1. Install Istio by specifying the package's path and filename in the `kubectl apply` command: ```bash kubectl apply --filename https://github.com/knative/serving/releases/download/v0.2.2/[FILENAME].yaml ``` @@ -70,7 +79,7 @@ service mesh on you cluster: where `[FILENAME]` is the name of the Istio package that you want to install. Example: `https://github.com/knative/serving/releases/download/v0.2.2/istio.yaml ` -1. Label the default namespace with `istio-injection=enabled`: **Q: For which install package is this needed? Or is this needed for all Istio installs?** +1. Label the default namespace with `istio-injection=enabled`: ```bash kubectl label namespace default istio-injection=enabled ``` @@ -92,27 +101,49 @@ an observability plugin but you have the option to install one later. ### Choosing Knative installation packages -The following Knative installation packages are available. - -This installation method is suggested for experienced operators. If you are new to -Knative, you should [install the default package](./README.md) to help you get up -and running with the least effort. - -| Knative Package Filename | Serving Component | Build Component | Eventing Component | Observability Plugin* | -| ------------------------ | ----------------- | --------------- | ------------------ | ----------------- | -| [**knative/serving**][1] | | | | | -| Default: [`release.yaml`][1.1] | Included | Included | - | [ELK stack][2] with Prometheus and Grafana | -| [`release-no-mon.yaml`][1.2] | Included | Included | - | - | -| [`release-lite.yaml`][1.3] | Included | Included | - | Prometheus and Grafana | -| [`serving.yaml`][1.4] | Included | - | - | - | -| [**knative/build**][6] | | | | | -| [`release.yaml`][6.1] | - | Included | - | - | -| [`build.yaml`][1.5] (from [knative/serving][1]) | - | Included | - | - | -| [**knative/eventing**][7] | | | | | -| [`eventing.yaml`][7.1] | - | - | Included | - | -| [**knative/eventing-sources**][8] | | | | | -| [`release.yaml`][8.1] | - | - | Included | - | -| [`release-with-gcppubsub.yaml`][8.2] | - | - | Included | - | +The following Knative installation packages are available: + +* **Multiple Component Bundle**: + * https://github.com/knative/serving/releases/download/v0.2.2/release.yaml + * https://github.com/knative/serving/releases/download/v0.2.2/release-no-mon.yaml + * https://github.com/knative/serving/releases/download/v0.2.2/release-lite.yaml + + If you are new to Knative, you should install a bundle to get started. More + information about installing a bundle are in the [install guides](./README.md). + +* **Build Component**: + * https://github.com/knative/build/releases/download/v0.2.0/release.yaml +* **Eventing Component**: + * https://github.com/knative/eventing/releases/download/v0.2.1/release.yaml + * https://github.com/knative/eventing/releases/download/v0.2.1/eventing.yaml + * https://github.com/knative/eventing-sources/releases/download/v0.2.1/release.yaml + * https://github.com/knative/eventing-sources/releases/download/v0.2.1/release-with-gcppubsub.yaml +* **Serving Component**: + * https://github.com/knative/serving/releases/download/v0.2.2/serving.yaml + +#### Install package details and options + +The following table includes details of each Knative installation package, including other install options: + +| Knative Package Filename | Serving Component | Observability Plugin* |Build Component | Eventing Component | Eventing Notes | +| ------------------------ | ----------------- | --------------------- | --------------- | ------------------ | ---------------- | +| [**knative/serving**][1] |||||| +| [`release.yaml`][1.1] | Included | [ELK stack][2] with [Prometheus][2.1] and [Grafana][2.2] | Included | - | - | +| [`release-no-mon.yaml`][1.2] | Included | - |Included | - | - | +| [`release-lite.yaml`][1.3] | Included | [Prometheus][2.1] and [Grafana][2.2] | Included | - | | +| [`serving.yaml`][1.4] | Included | - | - | - | - | +| [`build.yaml`][1.5] (copied from [knative/build][3]) | - | - | Included | - | - | +| [**knative/build**][3] |||||| +|[`release.yaml`][3.1] | - | - | Included | - | - | +| [**knative/eventing**][4] |||||| +| [`release.yaml`][4.1] | *Required* | - | - | Included | Includes the in-memory channel provisioner. | +| [`eventing.yaml`][4.2] | *Required* | - | - | Included | No channel provisioner. | +|[`in-memory-channel.yaml`][4.3] | *Required* | - | - | *Required* | Only the in-memory channel provisioner. | +| [`kafka.yaml`][4.4] | *Required* | - | - | *Required* | Only the Kafka channel provisioner. | +| [**knative/eventing-sources**][5] |||||| +|[`release.yaml`][5.1] | *Required* | - | - | *Required* | Source types: [Kubernetes][6], [GitHub][6.1], [Container image][6.3] | +| [`release-with-gcppubsub.yaml`][5.2] | *Required* | - | - | *Required* | Source types: [Kubernetes][6], [GitHub][6.1], [Container image][6.3], [PubSub][6.4] | +| [`message-dumper.yaml`][5.3] | *Required* | - | - | *Required* | Event logging service for debugging. | _*_ See [Installing observability plugins](../serving/installing-logging-metrics-traces.md) for details about the supported plugins and how to add monitoring, logging, and @@ -124,67 +155,82 @@ tracing to your cluster. [1.3]: https://github.com/knative/serving/releases/download/v0.2.2/release-lite.yaml [1.4]: https://github.com/knative/serving/releases/download/v0.2.2/serving.yaml [1.5]: https://github.com/knative/serving/releases/download/v0.2.2/build.yaml + [2]: https://www.elastic.co/elk-stack -[5]: ../serving/setting-up-a-logging-plugin.md -[6]: https://github.com/knative/build/releases/tag/v0.2.0 -[6.1]: https://github.com/knative/build/releases/download/v0.2.0/release.yaml -[7]: https://github.com/knative/eventing/releases/tag/v0.2.0 -[7.1]: https://github.com/knative/eventing/releases/download/v0.2.0/eventing.yaml -[8]: https://github.com/knative/eventing-sources/releases/tag/v0.2.0 -[8.1]: https://github.com/knative/eventing-sources/releases/download/v0.2.0/release.yaml -[8.2]: https://github.com/knative/eventing-sources/releases/download/v0.2.0/release-with-gcppubsub.yaml - -Note: Each of the installable Knative resources are also listed in the Assets -section of each Knative component's release page: -* [Serving v0.2.2][1.1] -* [Build v0.2.0][6.2] -* [Eventing v0.2.0][7.1] +[2.1]: https://prometheus.io +[2.2]: https://grafana.com + +[3]: https://github.com/knative/build/releases/tag/v0.2.0 +[3.1]: https://github.com/knative/build/releases/download/v0.2.0/release.yaml + +[4]: https://github.com/knative/eventing/releases/tag/v0.2.1 +[4.1]: https://github.com/knative/eventing/releases/download/v0.2.1/release.yaml +[4.2]: https://github.com/knative/eventing/releases/download/v0.2.1/eventing.yaml +[4.3]: https://github.com/knative/eventing/releases/download/v0.2.1/in-memory-channel.yaml +[4.4]: https://github.com/knative/eventing/releases/download/v0.2.1/kafka.yaml + +[5]: https://github.com/knative/eventing-sources/releases/tag/v0.2.1 +[5.1]: https://github.com/knative/eventing-sources/releases/download/v0.2.1/release.yaml +[5.2]: https://github.com/knative/eventing-sources/releases/download/v0.2.1/release-with-gcppubsub.yaml +[5.3]: https://github.com/knative/eventing-sources/releases/download/v0.2.1/message-dumper.yaml + +[6]: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.12/#event-v1-core +[6.1]: https://developer.github.com/v3/activity/events/types/ +[6.3]: https://github.com/knative/docs/tree/master/eventing#containersource +[6.4]: https://cloud.google.com/pubsub/ + +Note: Each of the installable Knative packages are also listed in the Assets +section of each Knative component's Releases page: +* [Serving v0.2.2][1] +* [Build v0.2.0][3] +* [Eventing v0.2.1][4] +* [Eventing Sources v0.2.1][5] ### Installing Knative packages **Tip**: From the table above, you can copy and paste the URL and filename of the installation package that you want to install. -1. To install a Knative package, run the `kubectl apply` command - and specify the package path and filename: +1. To install a Knative package by specifying the package's path and filename + in the `kubectl apply` command: * To install an individual package: ```bash kubectl apply --filename [INSTALL_PACKAGE] ``` - * To install multiple packages, you can append additional `--filename [INSTALL_PACKAGE]` + * To install multiple packages, append additional `--filename [INSTALL_PACKAGE]` flags to the `kubectl apply` command: ```bash kubectl apply --filename [INSTALL_PACKAGE] --filename [INSTALL_PACKAGE] \ --filename [INSTALL_PACKAGE] ``` - Where [`INSTALL_PACKAGE`] is the URL path and filename of the a Knative installation package: + where [`INSTALL_PACKAGE`] is the URL path and filename of the a Knative installation package: `https://github.com/knative/[COMPONENT]/releases/download/[VERSION]/[FILENAME].yaml` - And `[COMPONENT]`, `[VERSION]`, and `[FILENAME]` are the Knative component, release version, and filename of the installable resource. For example: + And `[COMPONENT]`, `[VERSION]`, and `[FILENAME]` are the Knative component, release version, and filename of the installable resource. Examples: * `https://github.com/knative/build/releases/download/v0.2.0/release.yaml` - * `https://github.com/knative/eventing/releases/download/v0.2.0/eventing.yaml` - * `https://github.com/knative/eventing-sources/releases/download/v0.2.0/release.yaml` + * `https://github.com/knative/eventing/releases/download/v0.2.1/eventing.yaml` + * `https://github.com/knative/eventing-sources/releases/download/v0.2.1/release.yaml` * `https://github.com/knative/serving/releases/download/v0.2.2/serving.yaml` **Example install commands:** - * To install the default package that includes both Knative Serving and Build: + * To install the Knative Serving and Build bundle: ```bash - kubectl apply -f https://github.com/knative/serving/releases/download/v0.2.2/release.yaml + kubectl apply --filename https://github.com/knative/serving/releases/download/v0.2.2/release.yaml ``` * To install all three Knative components without an observibility plugin: ```bash - kubectl apply -f https://github.com/knative/serving/releases/download/v0.2.2/serving.yaml \ - -f https://github.com/knative/build/releases/download/v0.2.0/release.yaml \ - -f https://github.com/knative/eventing/releases/download/v0.2.0/eventing.yaml + kubectl apply --filename https://github.com/knative/build/releases/download/v0.2.0/release.yaml \ + --filename https://github.com/knative/eventing/releases/download/v0.2.1/eventing.yaml \ + --filename https://github.com/knative/serving/releases/download/v0.2.2/serving.yaml ``` 1. Depending on what you choose to install, you view the status of your @@ -202,8 +248,8 @@ the installation package that you want to install. > 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. -1. If you installed an observability plugin, run the following command to ensure - that the `knative-monitoring` pods show a `STATUS` of `Running`: +1. If you installed a package that includes an observability plugin, run the following + command to ensure that the `knative-monitoring` pods show a `STATUS` of `Running`: ```bash kubectl get pods --namespace knative-monitoring From 4f6dce11abc99eac685d9ca4f60f8ae7eb4305a3 Mon Sep 17 00:00:00 2001 From: Richie Escarez Date: Mon, 17 Dec 2018 16:50:41 -0800 Subject: [PATCH 11/13] edit Istio steps around admission controller --- install/Knative-custom-install.md | 141 ++++++++++++++++++------------ 1 file changed, 83 insertions(+), 58 deletions(-) diff --git a/install/Knative-custom-install.md b/install/Knative-custom-install.md index 7f9e2301cca..7aa30a88148 100644 --- a/install/Knative-custom-install.md +++ b/install/Knative-custom-install.md @@ -12,11 +12,11 @@ requires that you to run multiple and separate installation commands. * If you are new to Knative, you should instead [install one of the default installation packages](./README.md). Follow the host specific Knative installation - instructions for the default package to help you get up and running with the - least effort. Installing a default package also ensures that you can run all the + instructions to help you get up and running with the least effort. Installing + a default package also ensures that you can run all the [Knative Serving Samples](https://github.com/knative/docs/blob/master/serving/samples/README.md). -* The following steps use `bash` for a MacOS or Linux environment; for Windows, +* The steps in this guide use `bash` for the MacOS or Linux environment; for Windows, some commands might need adjustment. * This guide assumes that you have an existing Kubernetes cluster, @@ -26,10 +26,6 @@ requires that you to run multiple and separate installation commands. * Your Kubernetes cluster version must be v1.10 or newer. - * The - [MutatingAdmissionWebhook admission controller](https://kubernetes.io/docs/reference/access-authn-authz/admission-controllers/#how-do-i-turn-on-an-admission-controller) - must be enabled on your Kubernetes cluster. - * Your version of the [`kubectl` CLI tool](https://kubernetes.io/docs/tasks/tools/install-kubectl/) must be v1.10 or newer. @@ -39,18 +35,26 @@ requires that you to run multiple and separate installation commands. Knative depends on [Istio](https://istio.io/docs/concepts/what-is-istio/) for the service mesh. -You should first install the `istio-crds.yaml` package to ensure that the -[Custom Resource Definitions (CRD)](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) are created before installing the Istio packages. - -You can install the Istio service mesh with -[automatic sidecar injection](https://istio.io/docs/setup/kubernetes/sidecar-injection). -If you are just getting started with Knative, install this package. Alternatively, you -can choose to install Istio with manual sidecar injection. +You should first install the `istio-crds.yaml` package to ensure that the Istio +[Custom Resource Definitions (CRD)](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) +are created before installing one of the Istio install packages. ### Choosing an Istio installation package -You can choose from the following installation packages to install the Istio -service mesh on you cluster: +There are two options for installing the Istio service mesh: + +* *automatic sidecar injection*: + [Automatically injects the Istio sidecars](https://istio.io/docs/setup/kubernetes/sidecar-injection/#automatic-sidecar-injection) + into the pods of your cluster as each of those pods are created. + +* *manual sidecar injection*: You must + [manually inject the Istio sidecars](https://istio.io/docs/setup/kubernetes/sidecar-injection/#manual-sidecar-injection) + into the pods of your cluster with the `istioctl kubeinject` command. + +Tip: If you are just getting started with Knative, you should choose automatic +sidecar injection. + +#### Istio installation packages | Istio Package Filename | Description | | ---------------------- | ----------------- | @@ -58,28 +62,47 @@ service mesh on you cluster: | [`istio.yaml`][b] | Install Istio with Automatic Sidecar Injection. | | [`istio-lean.yaml`][c] | Install Istio with Manual Sidecar Injection. | -[a]: https://github.com/knative/serving/releases/download/v0.2.2/istio-crds.yaml -[b]: https://github.com/knative/serving/releases/download/v0.2.2/istio.yaml -[c]: https://github.com/knative/serving/releases/download/v0.2.2/istio-lean.yaml +[a]: https://github.com/knative/serving/releases/download/v0.2.3/istio-crds.yaml +[b]: https://github.com/knative/serving/releases/download/v0.2.3/istio.yaml +[c]: https://github.com/knative/serving/releases/download/v0.2.3/istio-lean.yaml +### Installing Istio installation packages +1. If you choose to install Istio with automatic sidecar injection, you must ensure that + the [`MutatingAdmissionWebhook` admission controller](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.10/#mutatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io) + is enabled on your cluster by running the following command: -### Installing Istio installation packages + ```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://github.com/knative/serving/releases/download/v0.2.2/istio-crds.yaml - ``` + ```bash + kubectl apply --filename https://github.com/knative/serving/releases/download/v0.2.3/istio-crds.yaml + ``` 1. Install Istio by specifying the package's path and filename in the `kubectl apply` command: ```bash - kubectl apply --filename https://github.com/knative/serving/releases/download/v0.2.2/[FILENAME].yaml + kubectl apply --filename https://github.com/knative/serving/releases/download/v0.2.3/[FILENAME].yaml ``` - where `[FILENAME]` is the name of the Istio package that you want to install. Example: - `https://github.com/knative/serving/releases/download/v0.2.2/istio.yaml - ` -1. Label the default namespace with `istio-injection=enabled`: + where `[FILENAME]` is the name of the Istio package that you want to install. Examples: + * `istio.yaml` + * `istio-lean.yaml` + +1. If you chose to install Istio with automatic sidecar injection, you must + label the default namespace with `istio-injection=enabled`: ```bash kubectl label namespace default istio-injection=enabled ``` @@ -104,9 +127,9 @@ an observability plugin but you have the option to install one later. The following Knative installation packages are available: * **Multiple Component Bundle**: - * https://github.com/knative/serving/releases/download/v0.2.2/release.yaml - * https://github.com/knative/serving/releases/download/v0.2.2/release-no-mon.yaml - * https://github.com/knative/serving/releases/download/v0.2.2/release-lite.yaml + * https://github.com/knative/serving/releases/download/v0.2.3/release.yaml + * https://github.com/knative/serving/releases/download/v0.2.3/release-no-mon.yaml + * https://github.com/knative/serving/releases/download/v0.2.3/release-lite.yaml If you are new to Knative, you should install a bundle to get started. More information about installing a bundle are in the [install guides](./README.md). @@ -119,28 +142,33 @@ The following Knative installation packages are available: * https://github.com/knative/eventing-sources/releases/download/v0.2.1/release.yaml * https://github.com/knative/eventing-sources/releases/download/v0.2.1/release-with-gcppubsub.yaml * **Serving Component**: - * https://github.com/knative/serving/releases/download/v0.2.2/serving.yaml + * https://github.com/knative/serving/releases/download/v0.2.3/serving.yaml #### Install package details and options -The following table includes details of each Knative installation package, including other install options: +The following table includes details about the available Knative installation packages from the Knative repositories: + +* [Serving][1] +* [Build][3] +* [Eventing][4] +* [Eventing Sources][5] | Knative Package Filename | Serving Component | Observability Plugin* |Build Component | Eventing Component | Eventing Notes | | ------------------------ | ----------------- | --------------------- | --------------- | ------------------ | ---------------- | -| [**knative/serving**][1] |||||| -| [`release.yaml`][1.1] | Included | [ELK stack][2] with [Prometheus][2.1] and [Grafana][2.2] | Included | - | - | +| **knative/serving** |||||| +| [`release.yaml`][1.1] | Included | [ELK stack][2] with [Prometheus][2.1] and [Grafana][2.2]* | Included | - | - | | [`release-no-mon.yaml`][1.2] | Included | - |Included | - | - | -| [`release-lite.yaml`][1.3] | Included | [Prometheus][2.1] and [Grafana][2.2] | Included | - | | +| [`release-lite.yaml`][1.3] | Included | [Prometheus][2.1] and [Grafana][2.2]* | Included | - | | | [`serving.yaml`][1.4] | Included | - | - | - | - | | [`build.yaml`][1.5] (copied from [knative/build][3]) | - | - | Included | - | - | -| [**knative/build**][3] |||||| +| **knative/build** |||||| |[`release.yaml`][3.1] | - | - | Included | - | - | -| [**knative/eventing**][4] |||||| +| **knative/eventing** |||||| | [`release.yaml`][4.1] | *Required* | - | - | Included | Includes the in-memory channel provisioner. | | [`eventing.yaml`][4.2] | *Required* | - | - | Included | No channel provisioner. | |[`in-memory-channel.yaml`][4.3] | *Required* | - | - | *Required* | Only the in-memory channel provisioner. | | [`kafka.yaml`][4.4] | *Required* | - | - | *Required* | Only the Kafka channel provisioner. | -| [**knative/eventing-sources**][5] |||||| +| **knative/eventing-sources** |||||| |[`release.yaml`][5.1] | *Required* | - | - | *Required* | Source types: [Kubernetes][6], [GitHub][6.1], [Container image][6.3] | | [`release-with-gcppubsub.yaml`][5.2] | *Required* | - | - | *Required* | Source types: [Kubernetes][6], [GitHub][6.1], [Container image][6.3], [PubSub][6.4] | | [`message-dumper.yaml`][5.3] | *Required* | - | - | *Required* | Event logging service for debugging. | @@ -150,11 +178,11 @@ for details about the supported plugins and how to add monitoring, logging, and tracing to your cluster. [1]: https://github.com/knative/serving/releases/tag/v0.2.2 -[1.1]: https://github.com/knative/serving/releases/download/v0.2.2/release.yaml -[1.2]: https://github.com/knative/serving/releases/download/v0.2.2/release-no-mon.yaml -[1.3]: https://github.com/knative/serving/releases/download/v0.2.2/release-lite.yaml -[1.4]: https://github.com/knative/serving/releases/download/v0.2.2/serving.yaml -[1.5]: https://github.com/knative/serving/releases/download/v0.2.2/build.yaml +[1.1]: https://github.com/knative/serving/releases/download/v0.2.3/release.yaml +[1.2]: https://github.com/knative/serving/releases/download/v0.2.3/release-no-mon.yaml +[1.3]: https://github.com/knative/serving/releases/download/v0.2.3/release-lite.yaml +[1.4]: https://github.com/knative/serving/releases/download/v0.2.3/serving.yaml +[1.5]: https://github.com/knative/serving/releases/download/v0.2.3/build.yaml [2]: https://www.elastic.co/elk-stack [2.1]: https://prometheus.io @@ -179,17 +207,10 @@ tracing to your cluster. [6.3]: https://github.com/knative/docs/tree/master/eventing#containersource [6.4]: https://cloud.google.com/pubsub/ -Note: Each of the installable Knative packages are also listed in the Assets -section of each Knative component's Releases page: -* [Serving v0.2.2][1] -* [Build v0.2.0][3] -* [Eventing v0.2.1][4] -* [Eventing Sources v0.2.1][5] - ### Installing Knative packages -**Tip**: From the table above, you can copy and paste the URL and filename of -the installation package that you want to install. +**Tip**: From the table above, copy and paste the URL and package filename into +the commands below. 1. To install a Knative package by specifying the package's path and filename in the `kubectl apply` command: @@ -214,7 +235,7 @@ the installation package that you want to install. * `https://github.com/knative/build/releases/download/v0.2.0/release.yaml` * `https://github.com/knative/eventing/releases/download/v0.2.1/eventing.yaml` * `https://github.com/knative/eventing-sources/releases/download/v0.2.1/release.yaml` - * `https://github.com/knative/serving/releases/download/v0.2.2/serving.yaml` + * `https://github.com/knative/serving/releases/download/v0.2.3/serving.yaml` **Example install commands:** @@ -222,7 +243,7 @@ the installation package that you want to install. * To install the Knative Serving and Build bundle: ```bash - kubectl apply --filename https://github.com/knative/serving/releases/download/v0.2.2/release.yaml + kubectl apply --filename https://github.com/knative/serving/releases/download/v0.2.3/release.yaml ``` * To install all three Knative components without an observibility plugin: @@ -230,7 +251,7 @@ the installation package that you want to install. ```bash kubectl apply --filename https://github.com/knative/build/releases/download/v0.2.0/release.yaml \ --filename https://github.com/knative/eventing/releases/download/v0.2.1/eventing.yaml \ - --filename https://github.com/knative/serving/releases/download/v0.2.2/serving.yaml + --filename https://github.com/knative/serving/releases/download/v0.2.3/serving.yaml ``` 1. Depending on what you choose to install, you view the status of your @@ -260,8 +281,12 @@ events in your Knative cluster. ## What's next -Depending on the Knative components you installed, the following guides can help -you get started with Knative: +If you want to add monitoring, logging, and tracing support to your cluster, see +[Installing observability plugins](../serving/installing-logging-metrics-traces.md) +for details about the supported plugins. + +Depending on the Knative components you installed, you can use the following guides +to help you get started with Knative: * [Getting Started with Knative App Deployment](./getting-started-knative-app.md). From 9f5230dab9b500afc23a9220867297d4f7b7aec2 Mon Sep 17 00:00:00 2001 From: Richie Escarez Date: Wed, 19 Dec 2018 09:30:26 -0800 Subject: [PATCH 12/13] fix indentation --- install/Knative-custom-install.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/install/Knative-custom-install.md b/install/Knative-custom-install.md index 7aa30a88148..6088a2be322 100644 --- a/install/Knative-custom-install.md +++ b/install/Knative-custom-install.md @@ -227,15 +227,15 @@ the commands below. --filename [INSTALL_PACKAGE] ``` - where [`INSTALL_PACKAGE`] is the URL path and filename of the a Knative installation package: + where [`INSTALL_PACKAGE`] is the URL path and filename of the a Knative installation package: - `https://github.com/knative/[COMPONENT]/releases/download/[VERSION]/[FILENAME].yaml` + `https://github.com/knative/[COMPONENT]/releases/download/[VERSION]/[FILENAME].yaml` - And `[COMPONENT]`, `[VERSION]`, and `[FILENAME]` are the Knative component, release version, and filename of the installable resource. Examples: - * `https://github.com/knative/build/releases/download/v0.2.0/release.yaml` - * `https://github.com/knative/eventing/releases/download/v0.2.1/eventing.yaml` - * `https://github.com/knative/eventing-sources/releases/download/v0.2.1/release.yaml` - * `https://github.com/knative/serving/releases/download/v0.2.3/serving.yaml` + and `[COMPONENT]`, `[VERSION]`, and `[FILENAME]` are the Knative component, release version, and filename of the installable resource. Examples: + * `https://github.com/knative/build/releases/download/v0.2.0/release.yaml` + * `https://github.com/knative/eventing/releases/download/v0.2.1/eventing.yaml` + * `https://github.com/knative/eventing-sources/releases/download/v0.2.1/release.yaml` + * `https://github.com/knative/serving/releases/download/v0.2.3/serving.yaml` **Example install commands:** From a4f9a10b552853b677f61b093c41d3df0f8c3167 Mon Sep 17 00:00:00 2001 From: Richie Escarez Date: Fri, 21 Dec 2018 15:38:52 -0800 Subject: [PATCH 13/13] Recover networking related comments --- install/Knative-custom-install.md | 47 ++++++++++++++++++++----------- 1 file changed, 31 insertions(+), 16 deletions(-) diff --git a/install/Knative-custom-install.md b/install/Knative-custom-install.md index 6088a2be322..06061f586bc 100644 --- a/install/Knative-custom-install.md +++ b/install/Knative-custom-install.md @@ -33,7 +33,8 @@ requires that you to run multiple and separate installation commands. ## Installing Istio Knative depends on [Istio](https://istio.io/docs/concepts/what-is-istio/) for -the service mesh. +traffic routing and ingress. You have to option of injecting Istio sidecars and +enabling the Istio service mesh, but it's not required for certain Knative component. You should first install the `istio-crds.yaml` package to ensure that the Istio [Custom Resource Definitions (CRD)](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) @@ -41,26 +42,35 @@ are created before installing one of the Istio install packages. ### Choosing an Istio installation package -There are two options for installing the Istio service mesh: +You can Istio with or without a service mesh: -* *automatic sidecar injection*: - [Automatically injects the Istio sidecars](https://istio.io/docs/setup/kubernetes/sidecar-injection/#automatic-sidecar-injection) - into the pods of your cluster as each of those pods are created. +* *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*: You must - [manually inject the Istio sidecars](https://istio.io/docs/setup/kubernetes/sidecar-injection/#manual-sidecar-injection) - into the pods of your cluster with the `istioctl kubeinject` command. +* *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). -Tip: If you are just getting started with Knative, you should choose automatic -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. You must install the `istio.yaml` package to enable automatic +sidecar injection to install the following options: + +* [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 packages | Istio Package Filename | Description | | ---------------------- | ----------------- | -| [`istio-crds.yaml`][a] | Initially create CRDs before installing Istio. | -| [`istio.yaml`][b] | Install Istio with Automatic Sidecar Injection. | -| [`istio-lean.yaml`][c] | Install Istio with Manual Sidecar Injection. | +| [`istio-crds.yaml`][a] | Initially create 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. | [a]: https://github.com/knative/serving/releases/download/v0.2.3/istio-crds.yaml [b]: https://github.com/knative/serving/releases/download/v0.2.3/istio.yaml @@ -68,8 +78,9 @@ sidecar injection. ### Installing Istio installation packages -1. If you choose to install Istio with automatic sidecar injection, you must ensure that - the [`MutatingAdmissionWebhook` admission controller](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.10/#mutatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io) +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.10/#mutatingwebhookconfiguration-v1beta1-admissionregistration-k8s-io) is enabled on your cluster by running the following command: ```bash @@ -101,11 +112,15 @@ sidecar injection. * `istio.yaml` * `istio-lean.yaml` -1. If you chose to install Istio with automatic sidecar injection, you must +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`: