Minikube requires at least 2 MiB of free memory. The free command can be used to list the amount of available memory.
~]$ free -h
total used free shared buff/cache available
Mem: 1.9Gi 410Mi 959Mi 6.0Mi 532Mi 1.3Gi
Swap: 0B 0B 0B
You must also have Docker installed on your Linux system.
cURL can be used to download the minikube installer.
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
And then install the minikube CLI into the /usr/local/bin directory.
sudo install minikube-linux-amd64 /usr/local/bin/minikube
Ensure your user is a member of the group named docker so that you can run docker commands without having to use sudo.
sudo usermod -aG docker $USER
And ensure you are now a member of the docker group.
~]$ groups
ec2-user docker
Use the minikube CLI to start minikube.
minikube start
If minikube is successfully started, the following should be displayed at the end of the minkube start command output.
* Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default
This will pull down the gcr.io/k8s-minikube/kicbase Docker image.
~]$ sudo docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
gcr.io/k8s-minikube/kicbase v0.0.48 c6b5532e987b 2 months ago 1.31GB
This will create a Docker container named minikube.
~]$ sudo docker container ls
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0eec5fb0cb0b gcr.io/k8s-minikube/kicbase:v0.0.48 "/usr/local/bin/entr…" 2 hours ago Up 3 minutes 127.0.0.1:32772->22/tcp, 127.0.0.1:32771->2376/tcp, 127.0.0.1:32770->5000/tcp, 127.0.0.1:32769->8443/tcp, 127.0.0.1:32768->32443/tcp minikube
There should be a few pods, services, a daemonset, a deployment, and a replicaset running in the kube-system namespace.
~]$ minikube kubectl -- get all --all-namespaces
NAMESPACE NAME READY STATUS RESTARTS AGE
kube-system pod/coredns-66bc5c9577-rrsmm 1/1 Running 0 8m35s
kube-system pod/etcd-minikube 1/1 Running 0 8m40s
kube-system pod/kube-apiserver-minikube 1/1 Running 0 8m40s
kube-system pod/kube-controller-manager-minikube 1/1 Running 0 8m40s
kube-system pod/kube-proxy-k9xw8 1/1 Running 0 8m36s
kube-system pod/kube-scheduler-minikube 1/1 Running 0 8m40s
kube-system pod/storage-provisioner 1/1 Running 1 (8m5s ago) 8m38s
NAMESPACE NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
default service/kubernetes ClusterIP 10.96.0.1 <none> 443/TCP 8m42s
kube-system service/kube-dns ClusterIP 10.96.0.10 <none> 53/UDP,53/TCP,9153/TCP 8m41s
NAMESPACE NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
kube-system daemonset.apps/kube-proxy 1 1 1 1 1 kubernetes.io/os=linux 8m41s
NAMESPACE NAME READY UP-TO-DATE AVAILABLE AGE
kube-system deployment.apps/coredns 1/1 1 1 8m41s
NAMESPACE NAME DESIRED CURRENT READY AGE
kube-system replicaset.apps/coredns-66bc5c9577 1 1 1 8m36s
And a control plane node.
~]$ minikube kubectl -- get nodes --all-namespaces
NAME STATUS ROLES AGE VERSION
minikube Ready control-plane 9m57s v1.34.0
Next you will almost always want to start using the minikube web browser console. The following command can be used to return the minikube dashboard URL.
~]$ minikube dashboard --url
* Verifying dashboard health ...
* Launching proxy ...
* Verifying proxy health ...
http://127.0.0.1:36023/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/
Did you find this article helpful?
If so, consider buying me a coffee over at 