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.