๐Ÿ”„A Step-by-Step Guide to Preparing and Installing Kubernetes

๐Ÿ”„A Step-by-Step Guide to Preparing and Installing Kubernetes

Sep 14, 2023ยท

3 min read

Play this article

Introduction:

Are you ready to embark on your Kubernetes journey? Setting up a Kubernetes cluster can seem daunting at first, but with the right guidance, it becomes a manageable task. In this comprehensive guide, we'll walk you through each step, from preparing your system to initializing your Kubernetes cluster. ๐Ÿš€

Preparing the System

Before diving into Kubernetes installation, we need to ensure that your system is properly configured to run Kubernetes. Here are the essential steps:

Load Kernel Modules

# Load kernel modules
cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF
sudo modprobe overlay
sudo modprobe br_netfilter

Kernel modules like overlay and br_netfilter are essential for container networking and should be loaded.

Configure sysctl Parameters

# Configure sysctl parameters
cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward = 1
EOF

These parameters enable necessary network settings and IP forwarding. Apply the settings without needing to reboot:

sudo sysctl --system

Verify Kernel Modules

To ensure the kernel modules are loaded correctly, run the following commands:

lsmod | grep br_netfilter
lsmod | grep overlay

And to verify the sysctl parameters:

sysctl net.bridge.bridge-nf-call-iptables net.bridge.bridge-nf-call-ip6tables net.ipv4.ip_forward

Installing Docker

Docker is a fundamental component for running containers in your Kubernetes cluster. Let's install it:

# Add Docker's official GPG key
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

# Add Docker repository to Apt sources
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(. /etc/os-release && echo \"$VERSION_CODENAME\") stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

# Update package list and install containerd.io
sudo apt-get update
sudo apt install containerd.io

Verify Containerd

Check the status of the containerd service:

systemctl status containerd

Edit the containerd configuration to enable SystemdCgroup:

vi /etc/containerd/config.toml

[plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
  [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc.options]
    SystemdCgroup = true

Restart containerd to apply the changes:

sudo systemctl restart containerd

Configuring Kubernetes Repository

Next, we'll set up the Kubernetes repository:

# Install necessary packages for Kubernetes repository
sudo apt-get update
sudo apt-get install -y apt-transport-https ca-certificates curl

# Add Kubernetes repository GPG key
curl -fsSL https://pkgs.k8s.io/core:/stable:/v1.28/deb/Release.key | sudo gpg --dearmor -o /etc/apt/keyrings/kubernetes-apt-keyring.gpg

# Add Kubernetes repository to Apt sources
echo 'deb [signed-by=/etc/apt/keyrings/kubernetes-apt-keyring.gpg] https://pkgs.k8s.io/core:/stable:/v1.28/deb/ /' | sudo tee /etc/apt/sources.list.d/kubernetes.list

# Update the package list
sudo apt-get update

Installing Kubernetes Components

Now, it's time to install the Kubernetes components:

# Install Kubernetes packages
sudo apt-get install -y kubelet kubeadm kubectl

# Mark Kubernetes packages on hold to prevent accidental upgrades
sudo apt-mark hold kubelet kubeadm kubectl

Initializing Kubernetes Cluster

The moment you've been waiting for! Let's initialize your Kubernetes cluster:

# Initialize Kubernetes cluster (customize settings as needed)
kubeadm init --pod-network-cidr=10.244.0.0/16 --apiserver-advertise-address=172.31.31.0

Please note that you should customize parameters like --pod-network-cidr and --apiserver-advertise-address based on your network configuration.

After initialization, you'll receive instructions on how to join nodes to your cluster.

Wrapping Up

Congratulations! You've successfully prepared your system and installed Kubernetes. ๐ŸŽ‰

These commands cover the process of setting up a basic Kubernetes cluster. Be sure to customize some of the parameters, such as --pod-network-cidr and --apiserver-advertise-address, according to your specific requirements and network configuration. Additionally, please ensure that you have the necessary privileges and permissions to execute these commands on your system.

Now, you're ready to explore the fascinating world of container orchestration with Kubernetes! Happy clustering! ๐ŸŒŸ๐Ÿ” Checkout GitHub Repository for projects:

๐Ÿ”— linktr.ee/sumanprasad007

๐Ÿ” Check out my YouTube channel - Prasad Suman Mohan:

๐Ÿ”— youtube.com/@sumanprasad007

Did you find this article valuable?

Support Prasad Suman Mohan by becoming a sponsor. Any amount is appreciated!

ย