/knative-serving-raspberry-pi

Deploy Knative Serving to Kubernetes on a Raspberry Pi

Apache License 2.0Apache-2.0

Contributors Forks Stargazers Issues License

Knative Serving Raspberry Pi

  • Knative Serving
  • Kourier
  • SSLIP.IO

Prerequisites

  • Raspberry Pi running Ubuntu Server 64-bit
    • Kubernetes without CNI installed

Quick Start

git clone https://github.com/dashaun/knative-serving-raspberry-pi
cd knative-serving-raspberry-pi/operator-serving-kourier
# Use the `default` namespace in the Kubernetes cluster
kubectl config set-context --current --namespace=default
# Deploy the Knative operator
kubectl apply -f operator.yaml
# Check the deployment status
kubectl get deployment knative-operator

Continue when Ready status is 1/1

NAME               READY   UP-TO-DATE   AVAILABLE   AGE
knative-operator   1/1     1            1           19h
# Install Knative Serving custom resource and Kourier
kubectl apply -f knative-serving.yaml
# Check the custom resource status
kubectl get KnativeServing knative-serving -n knative-serving

Continue when READY is True

NAME              VERSION   READY   REASON
knative-serving   1.8.0     True
# Check the deployment status
kubectl get deployment -n knative-serving

Continue when READY are all 1/1

NAME                     READY   UP-TO-DATE   AVAILABLE   AGE
activator                1/1     1            1           23m
autoscaler               1/1     1            1           23m
controller               1/1     1            1           23m
domain-mapping           1/1     1            1           23m
domainmapping-webhook    1/1     1            1           23m
autoscaler-hpa           1/1     1            1           23m
3scale-kourier-gateway   1/1     1            1           23m
webhook                  1/1     1            1           23m
net-kourier-controller   1/1     1            1           23m
# Install default domain
kubectl apply -f serving-default-domain.yaml
# Deploy a Spring Boot 3 `native` application
kubectl apply -f spring-boot-native-pi-service.yaml
# Get the address
kubectl get ksvc spring-boot-native-pi --output=custom-columns=NAME:.metadata.name,URL:.status.url
NAME                    URL
spring-boot-native-pi   http://spring-boot-native-pi.default.10.0.0.10.sslip.io
# Curl the address provided by knative with `/actuator/health` at the end
curl http://spring-boot-native-pi.default.default.10.0.0.10.sslip.io/actuator/health

Expected output:

{"status":"UP"}

See Also

Contributing

Pull-requests are welcomed!

License

Distributed under the Apache License, Version 2.0. See LICENSE for more information.