Skip to content
/ kn-box Public

Script for installation a compact Knative distribution

Notifications You must be signed in to change notification settings

matzew/kn-box

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ff7954f · Nov 27, 2024
Aug 11, 2021
May 26, 2021
Jun 11, 2024
Apr 12, 2024
Nov 27, 2024
Nov 27, 2024
Apr 23, 2021
May 26, 2021
Aug 31, 2023
Mar 18, 2022
Jun 7, 2023
Aug 3, 2021
Oct 7, 2020

Repository files navigation

Knative installation box

A collection of script to run Knative

Out of the Box: Apache Kafka and Knative

An opinionated package of Knative, Koruier, Apache Kafka and Strimzi can be found in this folder!

Modular Installers

The root director contains a set of more fine-grained scripts, allowing you a modular setup. The installer gets you a minikube/kind cluster:

./00-installer(kind).sh

You can specify the Kubernetes version with the K8S_IMAGE environment variable, before call the 00-install-kind.sh:

export K8S_IMAGE=kindest/node:v1.20.0

You can also specify the cpus, memory, disk size, and driver of the vm with the CPUS, MEMORY, DISKSIZE, and DRIVER environment variables. For example, to specify 6 cpus in the vm:

CPUS=6 ./00-installer.sh

NOTE: The scripts for the Knative components work against any Kubernetes cluster!

Knative Serving

To install the Knative Knative Serving with Kourier Ingress to the cluster invoke:

./01-kn-serving.sh

This installs the latest released version of Knative serving. If you want to install the latest nightly build, use option --nightly (i.e. ./01-kn-serving.sh --nightly)

Knative Eventing

To install the Knative Eventing components to the cluster invoke:

./02-kn-eventing.sh

This installs the latest released version of Knative eventing. If you want to install the latest nightly build, use option --nightly (i.e. ./02-kn-eventing.sh --nightly)

Accessing a service

To extract the host & port for accessing a Knative service via Minikube you can use the following expression:

$(minikube ip):$(kubectl get svc kourier --namespace kourier-system --output 'jsonpath={.spec.ports[?(@.port==80)].nodePort}')

For example:

# Get host:port for acessing a service
ADDR=$(minikube ip):$(kubectl get svc kourier --namespace kourier-system --output 'jsonpath={.spec.ports[?(@.port==80)].nodePort}')

# Create a sample service
kn service create random --image rhuss/random:1.0

# Access the Knative service
curl -sH "Host: random.default.example.com" http://$ADDR | jq .

kn is the official CLI from the Knative project. Get it here!

Apache Kafka

If you want to experiment with Apache Kafka, install it using Strimzi:

./03-strimzi.sh

Knative components for Apache Kafka

To install the KafkaSource and the KafkaChannel CRDs, run:

./04-kn-kafka.sh

This command installs the latest release of the Apache Kafka components. If you instead want to install the latest nightly builds use the option --nightly (i.e. ./04-kn-kafka.sh --nightly).

The KafkaChannel in this version is currently not configured to run as a default channel!

Enabling tracing

If you want, you can install zipkin and configure it for Knative Eventing to read event traces:

./optional-tracing.sh

Be aware to configure tracing after you configured all the other components

Have fun!

About

Script for installation a compact Knative distribution

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages