Skip to content

Instantly share code, notes, and snippets.

@denyspozniak
Forked from wholroyd/preparations.md
Created May 23, 2023 20:20
Show Gist options
  • Save denyspozniak/d01d99b14dbf6a46f71adc91faf7a725 to your computer and use it in GitHub Desktop.
Save denyspozniak/d01d99b14dbf6a46f71adc91faf7a725 to your computer and use it in GitHub Desktop.
Getting Minikube on WSL2 Ubuntu working

Windows Preparation

  1. Ensure hypervisor functionality is enabled in BIOS.

    • I know it sounds stupid, but if you already have it enabled, disable it, restart the machine, and enable it again.
    • Otherwise you will hit microsoft/WSL#5363
  2. Launch a PowerShell prompt in Administrator mode [Win+X > Windows PowerShell (Admin)]

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
bcdedit /set hypervisorlaunchtype auto
  1. Install the Linux kernel update package and install it

  2. Restart machine

  3. Launch a PowerShell prompt in Administrator mode [Win+X > Windows PowerShell (Admin)]

wsl --set-default-version 2
  1. Install Ubuntu Linux distribution of your choice from the Windows Store (not the one with the version in the names)

  2. Verify WSL version is set correctly

wsl --list --verbose

Ubuntu Preparation

  1. Run series of commands to get right build of Docker installed
    • Removes the old crap, gets the dependencies right, adds Docker key, adds Docker repo, installs the new hotness
sudo apt-get remove docker docker-engine docker.io containerd runc
sudo apt-get update
sudo apt-get install \
    apt-transport-https \
    ca-certificates \
    curl \
    gnupg-agent \
    software-properties-common
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"
sudo apt-get update
sudo apt-get upgrade -y
sudo apt-get install docker-ce docker-ce-cli containerd.io -y
  1. Run series of commands to ensure you can interact with Docker without root
    • Third command here is a trick to reload your profile without actually logging out
    • Closing out Ubuntu shell and starting over instead of third command is an option
sudo groupadd docker
sudo usermod -aG docker ${USER}
su -s ${USER}
  1. Test the Docker configuration
sudo service docker start
docker run hello-world

Minikube Preparation

  1. Install Minikube
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb
sudo apt install ./minikube_latest_amd64.deb -y
rm minikube_latest_amd64.deb
  1. Start it
minikube start
  1. Get the dashboard going
    • The dashboard will continue to run and does not return back to a prompt here
    • You will need to kill the dashboard to continue in the guide
minikube dashboard
  1. Open the dashboard in your favorite browser (in Windows)
    • Port is dynamic, so can't document it well - you'll just have to be good at reading directions
    • The port will be in output of step 3 command
    • Should look something like this...
http://127.0.0.1:[PORT GOES HERE]/api/v1/namespaces/kubernetes-dashboard/services/http:kubernetes-dashboard:/proxy/#/workloads?namespace=default
  1. This process is going to block you from the finishing this guide, but to keep it running, do the following...
    • Perform "CTRL+Z" on the keyboard to send the process into paused state
    • Execute the following command to resume the paused process in the background
bg

Kubectl Preparation

  1. Install Kubectl
    • Adds k8s key, adds k8s repo, installs the new hotness
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
  1. Use it
kubectl get po -A

Helm Preparation

  1. Install Helm
curl --output helm-linux-amd64.tar.gz https://get.helm.sh/helm-v3.4.2-linux-amd64.tar.gz
tar -zxvf helm-linux-amd64.tar.gz
sudo mv linux-amd64/helm /usr/local/bin/helm
rm helm-linux-amd64.tar.gz
rm -rf linux-amd64
  1. Use it
helm version
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment