Skip to main content

Setting up Kubernetes Cluster in your home lab

Setting up Kubernetes Cluster in your home lab

Summary

Kubernetes is the future of automating deployment, scaling, and management of containerised applications which makes development of projects easier and portable. Additionally setting up such an environment within your local lab environment makes it easy to deploy and test out softwares at unprecedented pace.

You might have already setup Kubernetes in your laptop and must have used minikube to do so. But what if you want to setup it in your remote home lab? For instance i've got various DELL server (lab_server) running in my home lab and don't want my laptop to bear the pain of Kubernetes, but outsource the workloads to my lab_server while administering from laptop


k3s is a lightweight alternative and k3sup will automate such an installation into your lab_server and pair your laptop with it

Pre-Reqs

  • Understanding of Kubernetes
  • sudo permission on your home lab and connectivity from your laptop
  • https://github.com/alexellis/k3sup
  • Add lab_server to /etc/hosts file of your laptop

Steps

Steps in lab_server

  • Create a dedicated user (eg: k3user) in lab_server with sudo permission
  • Ensure k3user can sudo without password prompt by following below step
sudo su - 
echo "k3user  ALL=(ALL) NOPASSWD: ALL" > /etc/sudoers.d/k3user
chmod 0440 /etc/sudoers.d/k3user
exit
  • Ensure management port (eg 6443) is opened in Iptables/firewall-d etc to your LAN
sudo su -
iptables -I INPUT -s 192.168.1.0/24 -p tcp --dport 6443  -j ACCEPT
iptables-save >/etc/iptables/rules.v4
exit

Steps in laptop

  • Connect to the home_server using k3user and setup ssh-keys for automated access
# Generate key-pair if NOT done already
ssh-keygen -b 2048 -t rsa

# The above by default stores in your home location (~/.ssh/id_rsa)
# Copy the public key to lab_server and enter password one-time
ssh-copy-id -i ~/.ssh/id_rsa.pub k3user@lab_server
  • Ensure you can connect and sudo without password prompt
# ssh to lab_server and ensure no password prompts
ssh k3user@lab_server

# now sudo to root without password prompt
sudo su -
  • Now setup k3s from your laptop. 
curl -sLS https://get.k3sup.dev | sh
sudo install k3sup /usr/local/bin/ #Sometimes not required in Mac
k3sup --help # Check All works
  • Ensure you navigate to a relevant location as the kubeconfig file will be stored there by default and then run install
cd ~/mydev/
k3sup install --host lab_server --user k3user
# Note down the directory where kubeconfig is stored
    • Check if you can connect to lab_server and get kubectl info
    export KUBECONFIG=`pwd`/kubeconfig
    kubectl get node
    kubectl get pods -A
    • All set to go now !!








    Popular posts from this blog

    Create your own Passport Photo using GIMP

    This tutorial is for semi-techies who knows a bit of GIMP (image editing).   This tutorial is for UK style passport photo ( 45mm x 35 mm ) which is widely used in UK, Australia, New Zealand, India etc.  This is a quick and easy process and one can create Passport photos at home If you are non-technical, use this link   .  If you want to create United States (USA) Passport photo or Overseas Citizen of India (OCI) photo, please follow this link How to Make your own Passport Photo - Prerequisite GIMP - One of the best image editing tools and its completely Free USB stick or any memory device to store and take to nearby shop A quality Digital camera Local Shops where you can print. Normally it costs (£0.15 or 25 US cents) to print 8 photos Steps (Video Tutorial attached blow of this page) Ask one of your colleague to take a photo  of you with a light background. Further details of how to take a photo  yourself       Take multiple pictures so that you can choose from th

    Syslog Standards: A simple Comparison between RFC3164 & RFC5424

    Syslog Standards: A simple Comparison between RFC3164 (old format) & RFC5424 (new format) Though syslog standards have been for quite long time, lot of people still doesn't understand the formats in detail. The original standard document is quite lengthy to read and purpose of this article is to explain with examples Some of things you might need to understand The RFC standards can be used in any syslog daemon (syslog-ng, rsyslog etc.) Always try to capture the data in these standards. Especially when you have log aggregation like Splunk or Elastic, these templates are built-in which makes your life simple. Syslog can work with both UDP & TCP  Link to the documents the original BSD format ( RFC3164 ) the “new” format ( RFC5424 ) RFC3164 (the old format) RFC3164 originated from combining multiple implementations (Year 2001)

    VS Code & Portable GIT shell integration in Windows

    Visual Studio Code & GIT Portable shell Integration Summary Many of your corporate laptop cannot install programs and it is quite good to have them as portable executables. Here we find a way to have Portable VS Code and Portable GIT and integrate the GIT shell into VS Code Pre-Reqs VS Code (Install version or Portable ) GIT portable Steps Create a directory in your Windows device (eg:  C:\installables\ ) Unpack GIT portable into the above directory (eg it becomes: C:\installables\PortableGit ) Now unpack Visual Studio (VS) Code and run it. The default shell would be windows based Update User or Workspace settings of VS Code (ShortCut is:  Control+Shift+p ) Update the settings with following setting { "workbench.colorTheme": "Default Dark+", "git.ignoreMissingGitWarning": true, "git.enabled": true, "git.path": "C:\\installables\\PortableGit\\bin\\git.exe", "terminal.integrated.shell.windows"