Install standalone Kubernetes (minikube) on Fedora 26

Just another instructional page on how to install Kubernetes and Docker on your laptop. I needed something I could just bring up when I needed to try something outs.

Another link for good instructions: Fedora Magazine Minikube Kubernetes

Requirements:

Go through the list, do the instructions and install all items.

After all this is done

1) Your PATH should include /usr/local/bin

2) Add your user to the libvirt and docker groups (!important!)

sudo usermod -a -G libvirt,docker <username>

Do a ‘id <username>’ to be sure

id <username>
uid=1000(username) gid=1000(groupname) groups=18(group18),496(docker),984(libvirt)

The numbers don’t matter, just be sure the libvirt and docker group is there

Make sure you can run docker, minikube and kubectl without using sudo
If you have to use sudo, either you are not in the right group or permissions on the executable is not correct.

3) Start docker service

systemctl start docker

You can enable it so it comes up after reboots

systemctl enable docker

You should be able to do docker commands without sudo.

docker images
docker container ls

if you get and error like
“Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get http://%2Fvar%2Frun%2Fdocker.sock/v1.31/images/json: dial unix /var/run/docker.sock: connect: permission denied”

You are not in the docker group

4) Start minikube and ensure a virtual machine is in virt-manager

minikube start --vm-driver=kvm --insecure-registry library

The vm-driver tells minikube to use kvm

insecure-registry

  • I came across several issues with minikube and trying to get self made docker images to run.
  • Kubenetes would not run the self made images. It looking for library/imagename. It could not find it so it could not load it. This creates a registry called library.

5) setup the minikube environmental variables

eval $(minikube docker-env)

5) Setup kubectl to use minikube

kubectl config use-context minikube

6) Create a docker image 
It is easier to create a Dockerfile and then build it.

docker build -t imagename:v# .

When you create an image use versions. Seems there are issues with local images and ‘latest’. Use v1 or some sort of versioning in the name

7) Start the minikube dashboard

minikube dashboard

8) Run your docker image

kubectl run stl --image=imagename:v# --port=#### --image-pull-policy=IfNotPresent

I add the port number the image will run on in the container
The image pull policy is needed so it looks at the local registry. If you don’t use this, you might get and error about trying to find your image.

Check out the dashboard and see if it is running.

Log into the pod and check it out

kubectl exec -it <pod name> bash