# How to Install Kubernetes with Minikube on CentOS 8

> URL: https://www.atlantic.net/vps-hosting/how-to-install-kubernetes-with-minikube-on-centos-8/ | Published: 2020-12-04 | Updated: 2023-11-25 | Author: Hitesh Jethva

Minikube is an open-source software written in Go and used for setting up a Kubernetes cluster on your local machine. Developers or administrators mainly use Minikube for testing purposes. This cross-platform software can be run on macOS, Linux, and Windows.

In this tutorial, we will learn how to install Kubernetes with Minikube on CentOS 8.

## Step 1: Install Docker

By default, the Docker package is not available in the CentOS 8 default repo, so you will need to add the Docker repo in your system.

You can add it with the following command:

```
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
```

After adding the Docker repo, install Docker by running the following command:

```
dnf install docker-ce --nobest -y
```

Once the installation is completed, start the Docker service and enable it to start at system reboot:

```
systemctl start docker
systemctl enable docker
```

You can also verify the installed version of Docker using the following command:

```
docker -v
```

You should see the following output:

```
Docker version 19.03.12, build 48a66213fe
```

## Step 2: Install Kubectl

Before starting, you will need to install the required dependencies in your system. You can install them with the following command:

```
dnf install curl conntrack -y
```

Next, you will need to install Kubectl in your system. By default, kubectl is not included in CentOS 8, so you will need to install it using the curl command:

```
curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s 
https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl
```

Next, give the execution permission to the downloaded binary and move it to the /usr/local/bin directory:

```
chmod +x ./kubectl
mv ./kubectl /usr/local/bin/kubectl
```

You can now verify the Kubectl version with the following command:

```
kubectl version --client
```

You should see the following output:

```
Client Version: version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.5", 
GitCommit:"e6503f8d8f769ace2f338794c914a96fc335df0f", GitTreeState:"clean", 
BuildDate:"2020-06-26T03:47:41Z", GoVersion:"go1.13.9", Compiler:"gc", 
Platform:"linux/amd64"}
```

## Step 3: Install Minikube

First, download the Minikube binary package using the curl command:

```
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64
```

Next, give the execution permission to the downloaded binary with the following command:

```
chmod +x minikube
```

Next, install Minikube by running the following command:

```
install minikube /usr/local/bin/
```

You can now start Minikube using the following command:

```
minikube start --driver=none
```

Once Minikube is started successfully, you should get the following output:

![](https://www.atlantic.net/wp-content/uploads/2020/11/minikube1.png)

The above command will download and start the Docker containers for setting up a single node Kubernetes cluster.

You can also verify the status of the Kubernetes cluster with the following command:

```
minikube status
```

You should see the following output:

```
minikube
type: Control Plane
host: Running
kubelet: Running
apiserver: Running
kubeconfig: Configured
```

You can also view the cluster information using the following command:

```
kubectl cluster-info
```

You should see the following output:

```
Kubernetes master is running at https://your-server-ip:8443
KubeDNS is running at https://your-server-ip:8443/api/v1/namespaces/kube-system/services/kube-
dns:dns/proxy

To further debug and diagnose cluster problems, use 'kubectl cluster-info dump'.
```

You can also view the cluster nodes using the following command:

```
kubectl get nodes
```

You should get the following output:

```
NAME STATUS ROLES AGE VERSION
minicube Ready master 2m v1.18.3
```

## Step 4: Verify Kubernetes Cluster

Now, deploy a k8s using echoserver image to test the Kubernetes cluster.

```
kubectl create deployment test-minikube --image=k8s.gcr.io/echoserver:1.10
```

You should see the following output:

```
deployment.apps/test-minikube created
```

Now, expose your deployment on port 8080 using the following command:

```
kubectl expose deployment test-minikube --type=NodePort --port=8080
```

You should see the following output:

```
service/test-minikube exposed
```

Next, get the information about your exposed deployment using the following command:

```
kubectl get pod
```

You should see the following output:

```
NAME READY STATUS RESTARTS AGE
test-minikube-f4df69575-7m2pl 1/1 Running 0 33s
```

Next, get the URL of your deployment using the following command:

```
minikube service test-minikube --url
```

You should see the following output:

```
http://your-server-ip:31186
```

Now, open your web browser and access the above URL http://your-server-ip:31186. You should see the following screen:

![](https://www.atlantic.net/wp-content/uploads/2020/11/minicube2.png)

## Step 5: Enable Kubernetes Dashboard

Kubernetes comes with a web dashboard that can be used to manage your cluster through a web browser. By default, the dashboard is disabled in Minikube.

You can list all Minikube addons using the following command:

```
minikube addons list
```

You should see the following output:

```
|-----------------------------|----------|--------------|
| ADDON NAME | PROFILE | STATUS |
|-----------------------------|----------|--------------|
| ambassador | minikube | disabled |
| dashboard | minikube | disabled |
| default-storageclass | minikube | enabled ✅ |
| efk | minikube | disabled |
| freshpod | minikube | disabled |
| gvisor | minikube | disabled |
| helm-tiller | minikube | disabled |
| ingress | minikube | disabled |
| ingress-dns | minikube | disabled |
| istio | minikube | disabled |
| istio-provisioner | minikube | disabled |
| logviewer | minikube | disabled |
| metallb | minikube | disabled |
| metrics-server | minikube | disabled |
| nvidia-driver-installer | minikube | disabled |
| nvidia-gpu-device-plugin | minikube | disabled |
| olm | minikube | disabled |
| registry | minikube | disabled |
| registry-aliases | minikube | disabled |
| registry-creds | minikube | disabled |
| storage-provisioner | minikube | enabled ✅ |
| storage-provisioner-gluster | minikube | disabled |
|-----------------------------|----------|--------------|
```

Now, enable the Minikube dashboard and get the URL of the dashboard with the following command:

```
minikube dashboard --url
```

This will enable the Minikube dashboard as shown below:

```
* Enabling dashboard ...
* Verifying dashboard health ...
* Launching proxy ...
* Verifying proxy health ...
http://127.0.0.1:42939/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-
dashboard:/proxy/
```

Now, you can access the Minikube dashboard locally using the above URL.

## Conclusion

Congratulations! You have successfully installed Kubernetes cluster with Minikube on CentOS 8. You can now start experimenting with Kubernetes locally. Get started with Kubernetes and Minikube on [VPS Hosting](https://www.atlantic.net/vps-hosting/) from Atlantic.Net today!
