Istio with minikube On Windows pt 1

Installation

Step 1. Start minikube with more power

minikube start --memory=4096 --cpus=4 --vm-driver hyperv --hyperv-virtual-switch "minikube"
I found out Windows has Dark Mode!
istioctl install --set profile=demo -y
istioctl install — set profile=demo -y
kubectl get ns
You should see the istio-system namespace
kubectl get svc -n istio-system
A closer look and your output should match this
The full output
kubectl get pods -n istio-system
Everything up and running
  • use istioctl to apply a side-car to a pod
  • Automatic injection per namespace, as long as that namespace has the specific label of istio-injection=enabled set.
kubectl label namespace default istio-injection=enabled && kubectl apply -f https://raw.githubusercontent.com/airwavetechio/hello-world/master/_k8s/configmap.yaml && kubectl apply -f https://raw.githubusercontent.com/airwavetechio/hello-world/master/_k8s/deployment.yml
kubectl get pods
There are now 2/2 of pods

See if you can find out more information using kubectl describe and the kubernetes dashboard.

Step 6: Make your webapp accessible via a browser

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

This is specific to minikube. If you were running this in production, you would most likely have an external load balancer with an IP already setup.

I have a premade gateway.yml file ready to match the app you just deployed.

kubectl apply -f https://raw.githubusercontent.com/airwavetechio/hello-world/master/_k8s/gateway.yml

I know that was fast, but what just happened?

  1. I added enough resources to minikube and started it up
  2. I downloaded all the source files and installed Istio
  3. I setup auto sidecar injection and deployed my webapp
  4. I setup a Virtual Service and Gateway

Clean-Up

Here’s a list of commands to uninstall the webapp

kubectl delete -f https://raw.githubusercontent.com/airwavetechio/hello-world/master/_k8s/gateway.ymlkubectl delete -f https://raw.githubusercontent.com/airwavetechio/hello-world/master/_k8s/deployment.ymlkubectl delete -f https://raw.githubusercontent.com/airwavetechio/hello-world/master/_k8s/configmap.yaml
Removing deployment and gateway

--

--

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