Minikube
Follow these instructions to prepare minikube for Istio installation with sufficientresources to run Istio and some basic applications.
Prerequisites
Administrative privileges are required to run minikube.
To enable SDS for your mesh, you must add extra configurations to your Kubernetes deployment.Refer to the
api-server
reference docs for the most up-to-date flags.
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-driver
within the minikube configuration using the following command:
$ minikube config set vm-driver kvm2
- Start minikube with 16384
MB
of memory and 4CPUs
. 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:
$ 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:
$ minikube ssh
$ top
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:
$ minikube tunnel
Sometimes minikube does not clean up the tunnel network properly. To force a propercleanup:
$ minikube tunnel --cleanup