Installing Knative with Istio on minikube for Windows

Installing Knative

Install Knative in your Istio-enabled minikube

kubectl apply --filename https://github.com/knative/serving/releases/download/v0.16.0/serving-crds.yamlkubectl apply --filename https://github.com/knative/serving/releases/download/v0.16.0/serving-core.yamlkubectl apply --filename https://github.com/knative/net-istio/releases/download/v0.16.0/release.yamlkubectl apply --filename https://github.com/knative/eventing/releases/download/v0.16.0/eventing-crds.yamlkubectl apply --filename https://github.com/knative/eventing/releases/download/v0.16.0/eventing-core.yamlkubectl apply --filename https://github.com/knative/eventing/releases/download/v0.16.0/in-memory-channel.yaml
A portion of the output from installing Knative-Eventing

Check on the installation

kubectl get pods --namespace knative-serving
kubectl get pods --namespace knative-eventing

Deploy a sample Serving serverless app

kubectl create namespace airwave-deploy
kubectl label namespace airwave-deploy istio-injection=enabled
kubectl apply --filename https://raw.githubusercontent.com/airwavetechio/hello-world/master/knative-service.yml
installing the airwavetech hello-world serverless example

Testing it out

Get the IP and Port information

minikube ip && kubectl -n istio-system get service istio-ingressgateway -o jsonpath='{.spec.ports[?(@.name==\"http2\")].nodePort}'

Get the Host header information

kubectl get ksvc airwavetech-helloworld -n airwave-deploy --output=custom-columns=NAME:.metadata.name,URL:.status.url
Capture the URL
curl -H "Host: <your URL without http://>" http://<minikube IP>:<istio-ingressgatway PORT> 
or
curl -H "Host: airwavetech-helloworld.airwave-deploy.example.com" http://192.168.79.129:30827 -v -i
curl the website using the proper host header

Follow up

What just happened?

a screengrab from Kiali showing how things are connected
This file looks like a mix up between your service definition and deployment.

Auto-Scale

kubectl get pods --namespace airwave-deploy
screengrab of various commands
screengrab of on-demand auto-scaling

Uninstalling Knative

kubectl delete --filename   https://raw.githubusercontent.com/airwavetechio/hello-world/master/knative-service.ymlkubectl delete namespace airwave-deploykubectl delete --filename https://github.com/knative/eventing/releases/download/v0.16.0/in-memory-channel.yamlkubectl delete --filename https://github.com/knative/eventing/releases/download/v0.16.0/eventing-core.yamlkubectl delete --filename https://github.com/knative/eventing/releases/download/v0.16.0/eventing-crds.yamlkubectl delete --filename https://github.com/knative/net-istio/releases/download/v0.16.0/release.yamlkubectl delete --filename https://github.com/knative/serving/releases/download/v0.16.0/serving-core.yamlkubectl delete --filename https://github.com/knative/serving/releases/download/v0.16.0/serving-crds.yaml

--

--

--

Helping you build the hardest parts of your Stack

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Mutt on MacOS

Tech roundtable discussions

Want to Work With Salesforce APIs? Of CORS!

Customize keyboard shortcut keys using python

Let’s Kill That Feature Nobody Uses It

Flare setup Meta-Mask for Coston2

Code Smell 10 — Too Many Arguments

Applying High Availability to Hinemos Installed on AWS Environment

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
AirwaveTech

AirwaveTech

Helping you build the hardest parts of your Stack

More from Medium

Integrating Kong Mesh with Styra DAS

ETPA’s migration to Kubernetes

OpenDistro with cert-manager

Dependencies: Here Be Monsters

Carta Marina by Olaus Magnus, 1539