Getting Started with Knative¶
Before you begin¶
Knative Quickstart Environments are for experimentation use only. For production installation, see our Administrator's Guide
Before you can get started with a Knative Quickstart deployment you must install kind, the Kubernetes CLI, and the Knative CLI.
Install Kind (Kubernetes in Docker)¶
You can use
kind (Kubernetes in Docker) to run a local Kubernetes cluster with Docker container nodes.
Install the Kubernetes CLI¶
The Kubernetes CLI (
kubectl), allows you to run commands against Kubernetes clusters. You can use
kubectl to deploy applications, inspect and manage cluster resources, and view logs.
Install the Knative CLI¶
The Knative CLI (
kn) provides a quick and easy interface for creating Knative resources, such as Knative Services and Event Sources, without the need to create or modify YAML files directly.
kn also simplifies completion of otherwise complex procedures such as autoscaling and traffic splitting.
For macOS, you can install
kn by using Homebrew.
brew install kn
Note: Quickstart requires
kn version 0.25 or later. To upgrade an existing install to the latest version, run
brew upgrade kn.
You can install
kn by downloading the executable binary for your system and placing it in the system path. Note that you will need
kn version 0.25 or later.
Download the binary for your system from the
Rename the binary to
knand make it executable by running the commands:
mv <path-to-binary-file> kn chmod +x kn
<path-to-binary-file>is the path to the binary file you downloaded in the previous step, for example,
Move the executable binary file to a directory on your PATH by running the command:
mv kn /usr/local/bin
Verify that the plugin is working by running the command:
Check out the
git clone https://github.com/knative/client.git cd client/
Build an executable binary:
kninto your system path, and verify that
kncommands are working properly. For example:
Links to images are available here:
You can run
kn from a container image. For example:
docker run --rm -v "$HOME/.kube/config:/root/.kube/config" gcr.io/knative-releases/knative.dev/client/cmd/kn:latest service list
kn from a container image does not place the binary on a permanent path. This procedure must be repeated each time you want to use
Having issues upgrading
If you are having issues upgrading using Homebrew, it may be due to a change to a
CLI repository, where
master branch was renamed to
main. If so, run
brew tap --repair brew update brew upgrade kn
to resolve the issue.
Install the Knative "Quickstart" environment¶
You can get started with a local deployment of Knative by using the Knative
For macOS, you can install the
quickstart plugin by using Homebrew.
brew install knative-sandbox/kn-plugins/quickstart
You can install the
quickstart plugin by downloading the executable binary for your system and placing it on your
PATH (for example, in
A link to the latest stable binary release is available on the
quickstart release page.
Check out the
git clone https://github.com/knative-sandbox/kn-plugin-quickstart.git cd kn-plugin-quickstart/
Build an executable binary:
Move the executable binary file to a directory on your
mv kn-quickstart /usr/local/bin
Verify that the plugin is working, for example:
kn quickstart --help
quickstart plugin completes the following functions:
- Checks if you have
kindinstalled, and creates a cluster called
- Installs Knative Serving with Kourier as the default networking layer, and nip.io as the DNS.
- Installs Knative Eventing and creates an in-memory Broker and Channel implementation.
Install Knative and Kubernetes on a local Docker Daemon using
kn quickstart kind
Having issues with Kind?
We've found that some users (specifically Linux) may have trouble with Docker and, subsequently, Kind. Though this tutorial assumes you have Kind installed, you can easily follow along with a different installation.
We have provide an alternative Quickstart on
minikube here: https://github.com/csantanapr/knative-minikube
Installing may take a few minutes. After the plugin is finished, check to make sure you have a Cluster called
kind get clusters