Minikube

Follow these instructions to prepare minikube for Istio installation with sufficientresources to run Istio and some basic applications.

Prerequisites

Installation steps

  • Install the latest version ofminikube, version 1.1.1 orlater, and aminikube hypervisor driver.

  • If you’re not using the default driver, set your minikube hypervisor driver.

For example, if you installed the KVM hypervisor, set the vm-driverwithin the minikube configuration using the following command:

  1. $ minikube config set vm-driver kvm2
  • Start minikube with 16384 MB of memory and 4 CPUs. This example uses Kubernetes version 1.14.2.You can change the version to any Kubernetes version supported by Istio by altering the—kubernetes-version value:
  1. $ minikube start --memory=16384 --cpus=4 --kubernetes-version=v1.14.2

Depending on the hypervisor you use and the platform on which the hypervisoris run, minimum memory requirements vary. 16384 MB is sufficent to runIstio and bookinfo.

If you don’t have enough RAM allocated to the minikubevirtual machine, the following errors could occur:

  • image pull failures
  • healthcheck timeout failures
  • kubectl failures on the host
  • general network instability of the virtual machine and the host
  • complete lock-up of the virtual machine
  • host NMI watchdog rebootsOne effective way to monitor memory usage in minikube:
  1. $ minikube ssh
  2. $ top
  3. GiB Mem : 12.4/15.7

This shows 12.4GiB used of an available 15.7 GiB RAM within the virtualmachine. This data was generated with the VMWare Fusion hypervisor on aMacbook Pro 13” with 16GiB RAM running Istio 1.2 with bookinfo installed.

  • (Optional, recommended) If you want minikube to provide a load balancer for useby Istio, you can use theminikube tunnel feature.Run this command in a different terminal, because the minikube tunnel feature will block yourterminal to output diagnostic information about the network:
  1. $ minikube tunnel

Sometimes minikube does not clean up the tunnel network properly. To force a propercleanup:

  1. $ minikube tunnel --cleanup