# Installation Of Minikube on AWS ubuntu 20.04

We will be exploring how to install minikube in AWS ubuntu 20.04. Before that, we need to understand what is minikube and what it does.

Minikube is a tool that allows us to run a single-node Kubernetes cluster locally on the machine. It is designed to be used for development and testing purposes and is not intended for production use. It allows developers to test their applications in a local Kubernetes environment, without the need for a separate starting or testing environment. This can be especially useful for testing applications that are designed to run on a Kubernetes cluster, as it allows developers to see how the application behaves in a real Kubernetes environment.

To install the Minkube follow the given steps:

1. Log in to AWS and select Ubuntu 20.04 with t2.medium because we should have at least 2vCPU and 4GB RAM.
    
2. Update the package manager index
    

```bash
sudo apt-get update
```

1. Install Docker, which is required for Minikube
    

```bash
sudo apt-get install -y docker.io
```

1. Install Conntrack
    

```bash
sudo apt-get install conntrack
```

1. Install kubectl, the command-line interface for Kubernetes
    

```bash
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

echo "deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list

sudo apt-get update
sudo apt-get install -y kubectl
```

Alternatively, we can download and install kubectl using

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

sudo mv ./kubectl /usr/local/bin/kubectl
```

1. Download the Minikube binary
    

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

1. Make the Minikube binary executable
    

```bash
chmod +x minikube
```

1. Move the Minikube binary to a directory in your PATH
    

```bash
sudo mv minikube /usr/local/bin
```

1. If you want to run Minikube by creating a virtual machine then you can install the VirtualBox driver for Minikube. It is optional.
    

```bash
sudo apt-get install -y virtualbox
```

1. Install cri-dockerd if you are using docker as a container runtime
    

```bash
git clone https://github.com/Mirantis/cri-dockerd.git
```

```bash
sudo su
```

```bash
wget https://storage.googleapis.com/golang/getgo/installer_linux
chmod +x ./installer_linux
./installer_linux
source ~/.bash_profile
```

```bash
cd cri-dockerd

mkdir bin

go build -o bin/cri-dockerd

mkdir -p /usr/local/bin

install -o root -g root -m 0755 bin/cri-dockerd /usr/local/bin/cri-dockerd

cp -a packaging/systemd/* /etc/systemd/system

sed -i -e 's,/usr/bin/cri-dockerd,/usr/local/bin/cri-dockerd,' /etc/systemd/system/cri-docker.service

systemctl daemon-reload

systemctl enable cri-docker.service

systemctl enable --now cri-docker.socket
```

1. Install crictl
    

```bash
curl -LO https://github.com/kubernetes-sigs/cri-tools/releases/download/v1.26.0/crictl-v1.26.0-linux-amd64.tar.gz

tar zxvf crictl-v1.26.0-linux-amd64.tar.gz
sudo mv crictl /usr/local/bin/
```

1. Start Minikube(Without Virtual Machine)
    

```bash
minikube start –-vm-driver=none
```

1. Apply CNI
    

```bash
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
```

1. Start Minikube (With Virtual Machine)
    

```bash
minikube start –-vm-driver=virtualbox
```

```bash
kubectl get pods
```
