This guide walks you through the installation of the latest version of Knative using pre-built images.
You can find guides for other platforms here.
Knative requires a Kubernetes cluster v1.10 or newer. kubectl
v1.10 is also
required. This guide walks you through creating a cluster with the correct
specifications for Knative on Pivotal Container Service.
This guide assumes you are using bash in a Mac or Linux environment; some commands will need to be adjusted for use in a Windows environment.
To install Pivotal Container Service (PKS), follow the documentation at https://docs.pivotal.io/runtimes/pks/1-1/installing-pks.html.
NOTE: Knative uses Istio sidecar injection and requires privileged mode for your init containers.
To enable privileged mode and create a cluster:
- Enable privileged mode:
- Open the Pivotal Container Service tile in PCF Ops Manager.
- In the plan configuration that you want to use, enable both of the
following:
- Enable Privileged Containers - Use with caution
- Disable DenyEscalatingExec
- Save your changes.
- In the PCF Ops Manager, review and then apply your changes.
- Create a cluster.
To retrieve your cluster credentials, follow the documentation at https://docs.pivotal.io/runtimes/pks/1-1/cluster-credentials.html.
Knative depends on Istio. Istio workloads require privileged mode for Init Containers
- Install Istio:
kubectl apply --filename https://github.com/knative/serving/releases/download/v0.2.2/istio.yaml
- Label the default namespace with
istio-injection=enabled
:kubectl label namespace default istio-injection=enabled
- Monitor the Istio components until all of the components show a
STATUS
ofRunning
orCompleted
: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 can install the Knative Serving and Build components together, or Build on its own.
- Run the
kubectl apply
command to install Knative and its dependencies:kubectl apply --filename https://github.com/knative/serving/releases/download/v0.2.2/release.yaml
- Monitor the Knative components until all of the components show a
STATUS
ofRunning
:kubectl get pods --namespace knative-serving kubectl get pods --namespace knative-build
- Run the
kubectl apply
command to install Knative Build and its dependencies:kubectl apply --filename https://github.com/knative/serving/releases/download/v0.2.2/build.yaml
- Monitor the Knative Build components until all of the components show a
STATUS
ofRunning
:kubectl get pods --namespace knative-build
Just as with the Istio components, it will take a few seconds for the Knative
components to be up and running; you can rerun the kubectl get
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 are now ready to deploy an app or create a build in your new Knative cluster.
Now that your cluster has Knative installed, you're ready to deploy an app.
You have two options for deploying your first app:
-
You can follow the step-by-step Getting Started with Knative App Deployment guide.
-
You can view the available sample apps and deploy one of your choosing.
To delete the cluster, follow the documentation at https://docs.pivotal.io/runtimes/pks/1-1/delete-cluster.html.