[Serverless Knative] Knative Docs - Getting Started with Knative

Getting Started with Knative

Before you begin


Warning

Knative Quickstart Environments are for experimentation use only. For production installation, see our Installing Guide - https://knative.dev/docs/install/


Before you can get started with a Knative Quickstart deployment you must install kind, the Kubernetes CLI kubectl, and the Knative CLI kn.

Prepare local Kubernetes cluster

You can use kind - https://kind.sigs.k8s.io/docs/user/quick-start (Kubernetes in Docker) or minikube - https://minikube.sigs.k8s.io/docs/start/ 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.

Installing the kn CLI

Using Homebrew

For macOS, you can install kn by using Homebrew.

1
$ 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.


Using a binary

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.

1
2
3
$ mv <path-to-binary-file> kn

$ chmod +x kn

Where <path-to-binary-file> is the path to the binary file you downloaded in the previous step, for example, kn-darwin-amd64 or kn-linux-amd64.

    1. Move the executable binary file to a directory on your PATH by running the command:
1
$ mv kn /usr/local/bin
    1. Verify that the plugin is working by running the command:
1
$ kn version

Using Go

    1. Check out the kn client repository:
1
2
3
$ git clone https://github.com/knative/client.git

$ cd client/

Build an executable binary:

1
$ hack/build.sh -f

Move kn into your system path, and verify that kn commands are working properly. For example:

1
$ kn version

Using a container image

Links to images are available here:

Latest release - https://gcr.io/knative-releases/knative.dev/client/cmd/kn

You can run kn from a container image. For example:

1
$ docker run --rm -v "$HOME/.kube/config:/root/.kube/config" gcr.io/knative-releases/knative.dev/client/cmd/kn:latest service list

Note

Running 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 kn.


Having issues upgrading kn?

Install the Knative “Quickstart” environment

You can get started with a local deployment of Knative by using the Knative quickstart plugin.

Installing the quickstart plugin

Using Homebrew

For macOS, you can install the quickstart plugin by using Homebrew.

1
$ brew install knative-sandbox/kn-plugins/quickstart
Using a binary

You can install the quickstart plugin by downloading the executable binary for your system and placing it on your PATH (for example, in /usr/local/bin).

A link to the latest stable binary release is available on the quickstart release page - https://github.com/knative-sandbox/kn-plugin-quickstart/releases.

Using Go
    1. Check out the kn-plugin-quickstart repository:
1
2
3
$ git clone https://github.com/knative-sandbox/kn-plugin-quickstart.git

$ cd kn-plugin-quickstart/
    1. Build an executable binary:
1
$ hack/build.sh
    1. Move the executable binary file to a directory on your PATH:
1
$ mv kn-quickstart /usr/local/bin
    1. Verify that the plugin is working, for example:
1
$ kn quickstart --help

The quickstart plugin completes the following functions:

  • Checks if you have the selected Kubernetes instance installed, and creates a cluster called knative.

  • 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 locally

Using kind

Install Knative and Kubernetes on a local Docker daemon by running:

1
# kn quickstart kind

After the plugin is finished, verify you have a cluster called knative:

1
$ kind get clusters

Using minikube

1
$ kn quickstart minikube

After the plugin is finished, verify you have a cluster called knative:

1
$ minikube profile list

References

[1] Knative Quickstart - Knative - https://knative.dev/docs/getting-started/

[2] Home - Knative - https://knative.dev/docs/

[3] Installing Guide - https://knative.dev/docs/install/

[4] kind – Quick Start - https://kind.sigs.k8s.io/docs/user/quick-start

[5] minikube start | minikube - https://minikube.sigs.k8s.io/docs/start/

[6] Overview of kubectl | Kubernetes - https://kubernetes.io/docs/reference/kubectl/overview/

[7] The Missing Package Manager for macOS (or Linux) — Homebrew - https://brew.sh/

[8] Releases · knative/client - https://github.com/knative/client/releases

[9] quickstart release page - https://github.com/knative-sandbox/kn-plugin-quickstart/releases

[10] knative-sandbox/net-kourier: Purpose-built Knative Ingress implementation using just Envoy with no additional CRDs - https://github.com/knative-sandbox/net-kourier