Minikube Cluster Setup

The following guide specifically focusses on the setup of Linux (Ubuntu Server) guest in Windows 11 host.

  1. Install and configure Oracle VirtualBox.

  2. Donload Ubuntu Server ISO.

  3. Install the Ubuntu Server ISO in VirtualBox with the following system requirements of the VDI created:

    • Minimum Disk space: Minimum 25 GB

    • Minimum Memory: 4 GB

    • Minimum number of CPU cores: 2

    • Network: NAT / Bridged Adapter (Recommended)

  4. For NAT netwrok:

    Click on ‘Port Forwarding’ button and configure with the following details. This is required to perform ssh from Windows terminal.

NameProtocolHost IPHost PortGuest IPGuest Port
sshTCP302222

For Bridged Adapter network, find the IP using the following command in the guest machine.

ip a
  1. Open and log into the VDI and run the following commands:

     # Update the OS
     sudo apt update && sudo apt upgrade
    
     # Install openssh-server
     sudo apt install openssh-server
    
     # Enable the ssh service using systemctl
     sudo systemctl enable ssh --now
    
     # Check if the service is enabled
     sudo systemctl status ssh
    

    If the ssh service is enabled, following message is displayed:

  2. Now we can perform ssh from the host terminal using the following command and use the VDI with a somewhat an experience mimicking the cloud:

     # NAT network
     ssh -p 3022 vboxuser@127.0.0.1
    
     # Bridged Adapter network
     ssh vboxuser@192.xxx.x.x
    
  3. Now, perform the following steps / execute commands to install docker and minikube. All the steps are mentioned in this documentation of minikube. Following is the simpler explanation of the mentioned steps.

Docker Installation

A container or virtual machine manager is required. In this, we will be using docker. We will refer to the docker documentation for the docker installation. Following are the steps:

  1. Uninstall the unofficial packages:

     for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done
    
  2. Install using apt-repository:

     # Add Docker's official GPG key:
     sudo apt-get update
     sudo apt-get install ca-certificates curl
     sudo install -m 0755 -d /etc/apt/keyrings
     sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
     sudo chmod a+r /etc/apt/keyrings/docker.asc
    
     # Add the repository to Apt sources:
     echo \
       "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
       $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") stable" | \
       sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
     sudo apt-get update
    
  3. Install the docker dependencies:

     sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
    
  4. Verify the installation:

     sudo docker run hello-world
    
  5. Use the following command to add the user to docker group. This step is a prerequisite to start minikube:

     sudo usermod -aG docker $USER && newgrp docker
    

Minikube Installation

In the previously mentioned minikube documentation, in the ‘Installation’ section, select the buttons to describe the target platform. For our case, it is:

  • Operating System: Linux

  • Architecture: x86-64

  • Release type: Stable

  • Installer type: Debian package

Perform the following steps to install minikube server.

  1. The reuqired command to install the minikube package will appear below the ‘Installation’ section after selecting the relevant buttons in the sectioned mentioned above which is to be run in the terminal:

     curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb
     sudo dpkg -i minikube_latest_amd64.deb
    
  2. Start the cluster

     minikube start
    
  3. Install kubectl:

     sudo snap install kubectl --classic
    

Now we are ready with development ready server of Kubernetes which can be used for hosting, serving and testing small projects.

0
Subscribe to my newsletter

Read articles from Tuhin Kumar Dutta directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Tuhin Kumar Dutta
Tuhin Kumar Dutta

I decode data, craft AI solutions, and write about everything from algorithms to analytics. Here to share what I learn and learn from what I share. 🚀 Data Scientist | AI Enthusiast | Building intelligent systems & simplifying complexity through code and curiosity. Sharing insights, projects, and deep dives in ML, data, and innovation.