Getting minikube up and running

After I’ve gotten podman running, I want to start using minikube:

rolfedh@rolfedh-HP-Z2-Mini-G3-Workstation:~$ minikube start
πŸ˜„  minikube v1.23.0 on Linuxmint 20.3
✨  Using the podman driver based on user configuration

πŸ’£  Exiting due to PROVIDER_PODMAN_NOT_RUNNING: "sudo -k -n podman version --format " exit status 1: sudo: a password is required
πŸ’‘  Suggestion: Add your user to the 'sudoers' file: 'rolfedh ALL=(ALL) NOPASSWD: /usr/bin/podman'
πŸ“˜  Documentation: https://podman.io

Looking at line 5, I see that starting minikube bombed. I must enable a non-root user like minikube to run podman. How do that?

From line 6, I copy the suggestion, rolfedh ALL=(ALL) NOPASSWD: /usr/bin/podman and open /etc/sudoers by using the visudo command, which uses vim by default:

$ sudo visudo

If you prefer nano over vim, you can use `$ sudo EDITOR=nano visudo` instead:

With /etc/sudoers open in the editor, I write the following comment for my future self, paste the suggestion, and save the changes:

# Added the following line so minikube can run  podman

rolfedh ALL=(ALL) NOPASSWD: /usr/bin/podman

I start minikube again:

$ minikube start
πŸ˜„  minikube v1.23.0 on Linuxmint 20.3
✨  Using the podman driver based on user configuration
πŸ‘  Starting control plane node minikube in cluster minikube
🚜  Pulling base image ...
πŸ’Ύ  Downloading Kubernetes v1.22.1 preload ...
    > preloaded-images-k8s-v12-v1...: 515.04 MiB / 515.04 MiB  100.00% 4.25 MiB
    > gcr.io/k8s-minikube/kicbase: 355.82 MiB / 355.82 MiB  100.00% 2.75 MiB p/
E0501 20:01:53.791150 1379766 cache.go:200] Error downloading kic artifacts:  not yet implemented, see issue #8426
πŸ”₯  Creating podman container (CPUs=2, Memory=7900MB) ...
🐳  Preparing Kubernetes v1.22.1 on Docker 20.10.8 ...
    β–ͺ Generating certificates and keys ...
    β–ͺ Booting up control plane ...
    β–ͺ Configuring RBAC rules ...
πŸ”Ž  Verifying Kubernetes components...
    β–ͺ Using image gcr.io/k8s-minikube/storage-provisioner:v5
🌟  Enabled addons: storage-provisioner, default-storageclass
πŸ„  Done! kubectl is now configured to use "minikube" cluster and "default" namespace by default

And it works!

Some things I noted upon reviewing the cheery output, above:

  • On line 6, I see minikube is running kubernetes v1.22. How do I get kubernetes v1.24, which is coming out next week? (topic for a future blog post)
  • Reading TBD, I see minikube overwrote .kube/config file to make getting started easier. However, this overwrote the previous configuration, which I was using to connect to a kubernetes cluster I am running on Linode. No worries…I can easily get my hands on the *kubeconfig.yaml file for the Linode cluster. But I wonder, what’s the best way to manage multiple config files for multiple clusters? (topic for a future blog post)

To verify that things are running, I use kubectl to get the names of running pods (po) across all (-A) namespaces.

$ kubectl get po -A
NAMESPACE     NAME                               READY   STATUS    RESTARTS      AGE
kube-system   coredns-78fcd69978-7bvgw           1/1     Running   0             42m
kube-system   etcd-minikube                      1/1     Running   0             42m
kube-system   kube-apiserver-minikube            1/1     Running   0             42m
kube-system   kube-controller-manager-minikube   1/1     Running   0             42m
kube-system   kube-proxy-p6gqj                   1/1     Running   0             42m
kube-system   kube-scheduler-minikube            1/1     Running   0             42m
kube-system   storage-provisioner                1/1     Running   1 (41m ago)   42m

Now, having accomplished my goals of getting minikube up and running, and having published this post, I can stop minikube and go hang out with my family.

$ minikube stop
βœ‹  Stopping node "minikube"  ...
πŸ›‘  Powering off "minikube" via SSH ...
βœ‹  Stopping node "minikube"  ...
πŸ›‘  Powering off "minikube" via SSH ...
βœ‹  Stopping node "minikube"  ...
πŸ›‘  Powering off "minikube" via SSH ...
βœ‹  Stopping node "minikube"  ...

Side note

I’m evaluating Nigel Poulton’s “Kubernetes Quick Start” for team training and want to establish alternatives to the tech stack in the book:

  • Building images with podman and/or buildah instead of Docker Engine
  • Running a cluster on my local machine by using minikube or microk8s instead of running one remotely on Linode.

Leave a Comment