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

The state of IT operations management: 6 trends to watch

Associations in Ruby On Rails

How to install Git and Git Extensions?

Merge Intervals

Game designing with Coding

From Nanobox to Cloud 66

Integrating Pylint into Django’s Unit tests

Preparing for your Skilled Mock Technical Assessment

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

Deploying Flowable on Openshift

Multi Tenant Logs with Grafana Loki

Istio Service Mesh in Kubernetes and Auto Injecting It in the Kubernetes Pod as Side Car Container…

Kubernetes and it’s components.