Skip to content

matzew/kn-box

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