Installing Minkube, Docker-ce, and KVM on Fedora 29

Install Fedora 29

First you will need Fedora 29 server

  1. Install Fedora 29 server
  2. Install group “Fedora Workstation”

$sudo dnf groupinstall “Fedora Workstation”

Now you need to install KVM

step by step at:
https://docs.fedoraproject.org/en-US/quick-docs/getting-started-with-virtualization/

  1. Install virtualization

$sudo dnf group install –with-optional virtualization

2. Start libvirtd

$sudo systemctl start libvirtd

3. Enable libvirtd

$sudo systemctl enable libvirtd

You can use virt-manager to manage your virtual servers but first you need to assign group libvirt to your user

$sudo usermod -aG libvirt <user>

Do an id on the user to see what groups are attached to be sure

$id <user>

Install docker on Fedora 29

Instructions found:

Docker-ce instructions

Change the repo file to address Fedora 28 and x86_64 (if intel based 64) . The repo file will be under /etc/yum.repos.d called docker-ce.repo

Setup the repo for docker

$sudo dnf -y install dnf-plugins-core

$sudo dnf config-manager –add-repo https://download.docker.com/linux/fedora/docker-ce.repo

Remove any old docker programs

$sudo dnf remove docker docker-client docker-client-latest docker-common docker-latest docker-latest-logrotate docker-logrotate docker-selinux docker-engine-selinux docker-engine

Install docker-ce but to not start or enable docker

$sudo dnf install -y docker-ce

As of this date, Fedora 29 docker-ce is still a nightly build and does not work, this is why you have to change the repo to address Fedora 28

Add docker group to your user

$sudo usermod -aG docker <user>

Run docker version

$docker version
Client:
Version: 18.09.0
API version: 1.39
Go version: go1.10.4
Git commit: 4d60db4
Built: Wed Nov 7 00:48:47 2018
OS/Arch: linux/amd64
Experimental: false
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?

Docker is not running and cannot connect. We did not start docker-ce so this is good for now.

Install minikube on Fedora 29

Instruction found:

Install minikube

Make sure you did the above first (Fedora 29, KVM, docker)

Install kubectl binary using native package management

Instructions found:

Install kubectl

Select tab CentOS,RHEL, Fedora
Copy and paste to follow instructions
Run kubectl verstion

$kubectl version
Client Version: version.Info{Major:”1″, Minor:”12″, GitVersion:”v1.12.2″, GitCommit:”17c77c7898218073f14c8d573582e8d2313dc740″, GitTreeState:”clean”, BuildDate:”2018-10-24T06:54:59Z”, GoVersion:”go1.10.4″, Compiler:”gc”, Platform:”linux/amd64″}
The connection to the server localhost:8080 was refused – did you specify the right host or port?

Kubernetes is not running yet so you get the error.

Install minikube

Instruction found:

Minikube

Download the docker-machine-driver-kvm2 and install it in /usr/bin
Make sure you set it to executable
Go to the section ‘Distribution’, copy and paste the run curl command for Linux
as of this date it is

$curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.30.0/minikube-linux-amd64 && chmod +x minikube && sudo cp minikube /usr/local/bin/ && rm minikube

Running Minikube

Instruction found:

Running Minikube

Usually you only need “minikube start” but since we are using KVM you have to tell minikube the driver to use

$minikube start –vm-driver=kvm2

Now if you look at virtual-manager you will see a virtual machine called minikube and it is running

Running Minikube Dashboard

$minikube dashboard

You should see your default web browser come up and the kubernetes dashboard showing

In order to use docker images form the command line you have to set your docker environment to minikube
run

$eval $(minikube docker-env)

Now when you run docker images you will see a list of kubernetes docker images

$docker images

I would also install bash-completion.

$sudo dnf install -y bash-completion

You should add the source command for kubectl completion in your bashrc file

$echo “source <(kubectl completion bash)” >> ~/.bashrc

Now it is just a matter of getting on youtube and teaching yourslef Kubernetes and the kubectl command