From 70e6da3162c799dcf6815928c2161d24e5e39014 Mon Sep 17 00:00:00 2001 From: Noah Krause Date: Wed, 7 Aug 2019 17:31:56 -0400 Subject: [PATCH] Fix the order that Knative is installed in. (#1660) Ambassador requires Knative be installed in the cluster before it can run. The current ordering causes Ambassador to fail to start Signed-off-by: nbkrause --- docs/install/Knative-with-Ambassador.md | 65 ++++++++++++------------- 1 file changed, 32 insertions(+), 33 deletions(-) diff --git a/docs/install/Knative-with-Ambassador.md b/docs/install/Knative-with-Ambassador.md index b2bcf3b83..af84c2e52 100644 --- a/docs/install/Knative-with-Ambassador.md +++ b/docs/install/Knative-with-Ambassador.md @@ -23,41 +23,9 @@ This guide assumes that you have already [created a Kubernetes cluster](https://kubernetes.io/docs/setup/) and are using bash in a Mac or Linux environment. -## Install Ambassador - -Knative was originally built using Istio to handle cluster networking. While the -Istio gateway provides the functionality needed to serve requests to your -application, installing a service mesh to handle north-south traffic carries -some operational overhead with it. Ambassador provides a way to get traffic to -your Knative application without the overhead or complexity of a full service -mesh. - -You can install Ambassador with `kubectl`: - -``` -kubectl apply -f https://getambassador.io/yaml/ambassador/ambassador-knative.yaml -kubectl apply -f https://getambassador.io/yaml/ambassador/ambassador-service.yaml -``` - -Ambassador will watch for and create routes based off of Knative -`ClusterIngress` resources. These will then be accessible over the external IP -address of the Ambassador service you just created. - -Get this external IP address and save it in a variable named `AMBASSADOR_IP` - -``` -$ kubectl get svc ambassador - -NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE -ambassador LoadBalancer 10.59.246.30 35.229.120.99 80:32073/TCP 13m - -$ AMBASSADOR_IP=35.229.120.99 -``` - ## Install Knative -Now that Ambassador is installed to handle ingress to your serverless -applications, you need to install Knative to manage them. +First, let's install Knative to manage our serverless applications. The following commands install all available Knative components as well as the standard set of observability plugins. To customize your Knative installation, @@ -98,6 +66,37 @@ see Performing a Custom Knative Installation. kubectl get pods -w --all-namespaces ``` +## Install Ambassador + +Knative was originally built using Istio to handle cluster networking. While the +Istio gateway provides the functionality needed to serve requests to your +application, installing a service mesh just to handle north-south traffic +carries some operational overhead with it. Ambassador provides a way to get +traffic to your Knative application without the overhead or complexity of a +full service mesh. + +You can install Ambassador with `kubectl`: + +``` +kubectl apply -f https://getambassador.io/yaml/ambassador/ambassador-knative.yaml +kubectl apply -f https://getambassador.io/yaml/ambassador/ambassador-service.yaml +``` + +Ambassador will watch for and create routes based off of Knative +`ClusterIngress` resources. These will then be accessible over the external IP +address of the Ambassador service you just created. + +Get this external IP address and save it in a variable named `AMBASSADOR_IP` + +``` +$ kubectl get svc ambassador + +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE +ambassador LoadBalancer 10.59.246.30 35.229.120.99 80:32073/TCP 13m + +$ AMBASSADOR_IP=35.229.120.99 +``` + ## Deploying an Application Now that Knative and Ambassador are running, you can use them to manage and