Install by using the Knative Operator CLI Plugin¶
Knative provides the Operator CLI Plugin to install, configure and manage Knative on the command line. This plugin helps you configure the Knative cluster, without interacting with the complexities of the custom resources.
This topic describes how to install the Knative Operator and the Serving and Eventing components using a CLI.
This installation requires the following prerequisites:
- The CLI Tools are installed.
- Sufficient hardware:
One node requires at least 6 CPUs, 6 GB of memory, and 30 GB of disk storage.
Multiple nodes require 2 CPUs, 4 GB of memory, and 20 GB of disk storage.
- The existing Kubernetes is running a supported version.
For information on other Knative installs, see the Installation Roadmap.
Install the Knative Operator¶
You can install Knative Operator of any specific version under any specific namespace. By default, the namespace is default,
and the version is the latest.
To install the latest version of Knative Operator, run:
kn operator install
To install Knative Operator under a certain namespace, e.g. knative-operator, run:
kn operator install -n knative-operator
To install Knative Operator of a specific version, e.g. 1.7.1, run:
kn operator install -v 1.7.1
Install the Knative Serving component¶
You can install Knative Serving of any specific version under any specific namespace. By default, the namespace is knative-serving,
and the version is the latest.
To install the latest version of Knative Serving, run:
kn operator install --component serving
To install Knative Serving under a certain namespace, e.g. knative-serving, run:
kn operator install --component serving -n knative-serving
To install Knative Operator of a specific version, e.g. 1.7, run:
kn operator install --component serving -n knative-serving -v "1.7"
To install the ingress plugin, e.g Kourier, together with the install command, run:
kn operator install --component serving -n knative-serving -v "1.7" --kourier
If you do not specify the ingress plugin, istio is used as the default. However, you need to make sure you install Istio first.
Install the networking layer¶
You can configure the network layer option via the Operator CLI Plugin. Click on each of the following tabs to see how you can configure Knative Serving with different ingresses:
The following steps install Kourier and enable its Knative integration:
-
To configure Knative Serving to use Kourier, run the command as follows:
kn operator enable ingress --kourier -n knative-serving
The following steps install Istio to enable its Knative integration:
-
To configure Knative Serving to use Istio, run the command as follows:
kn operator enable ingress --istio -n knative-serving
The following steps install Contour and enable its Knative integration:
-
Install a properly configured Contour:
kubectl apply --filename https://storage.googleapis.com/knative-nightly/net-contour/latest/contour.yaml -
To configure Knative Serving to use Contour, run the command as follows:
kn operator enable ingress --contour -n knative-serving
Warning
Gateway API support in Knative is currently in Beta. The API and configuration may change in future releases. The Knative team currently tests with Istio, Contour, and Envoy Gateway implementations. For more details, see the net-gateway-api repository.
The following steps configure Knative Serving to use Gateway API as the networking layer:
-
You must have a Gateway API implementation installed in your cluster (for example, Istio, Contour, or Envoy Gateway). Refer to your chosen implementation's documentation for installation instructions.
-
Install the Gateway API CRDs if they are not already installed on your cluster:
kubectl apply -f https://github.com/kubernetes-sigs/gateway-api/releases/latest/download/standard-install.yaml -
To configure Knative Serving to use Gateway API, run the command as follows:
kn operator enable ingress --gateway-api -n knative-serving
Note
By default, the net-gateway-api controller uses Istio's Gateway resources
(istio-system/knative-gateway for external traffic and istio-system/knative-local-gateway
for cluster-local traffic). If you are using Istio as your Gateway API implementation,
no additional gateway configuration is needed.
If you are using a different Gateway API implementation such as Contour or Envoy Gateway,
you must configure spec.config.gateway in the KnativeServing CR to specify the correct
gateway references. For details, see
Configure the Gateway API ingress.
Install the Knative Eventing component¶
You can install Knative Eventing of any specific version under any specific namespace. By default, the namespace is knative-eventing,
and the version is the latest.
To install the latest version of Knative Eventing, run:
kn operator install --component eventing
To install Knative Eventing under a certain namespace, e.g. knative-eventing, run:
kn operator install --component eventing -n knative-eventing
To install Knative Operator of a specific version, e.g. 1.7, run:
kn operator install --component eventing -n knative-eventing -v "1.7"
Install Knative Eventing with event sources¶
Knative Operator can configure the Knative Eventing component with different event sources. Click on each of the following tabs to see how you can configure Knative Eventing with different event sources:
-
To install the eventing source Ceph, run the following command:
kn operator enable eventing-source --ceph --namespace knative-eventing
-
To install the eventing source Github, run the following command:
kn operator enable eventing-source --github --namespace knative-eventing
-
To install the eventing source Gitlab, run the following command:
kn operator enable eventing-source --gitlab --namespace knative-eventing
-
To install the eventing source Kafka, run the following command:
kn operator enable eventing-source --kafka --namespace knative-eventing
-
To install the eventing source RabbitMQ, run the following command:
kn operator enable eventing-source --rabbitmq --namespace knative-eventing
-
To install the eventing source Redis, run the following command:
kn operator enable eventing-source --redis --namespace knative-eventing