0% found this document useful (0 votes)
220 views

Kubernetes Installation Guide

This document provides step-by-step instructions to install Kubernetes on Ubuntu servers. It covers updating systems, disabling swap, configuring kernel parameters, installing containerd, adding Kubernetes repositories, initializing the cluster, joining worker nodes, installing a pod network plugin, and deploying a test application.

Uploaded by

Heo non
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
220 views

Kubernetes Installation Guide

This document provides step-by-step instructions to install Kubernetes on Ubuntu servers. It covers updating systems, disabling swap, configuring kernel parameters, installing containerd, adding Kubernetes repositories, initializing the cluster, joining worker nodes, installing a pod network plugin, and deploying a test application.

Uploaded by

Heo non
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

Install Kubernetes

Step 1: Update and Upgrade Ubuntu (all nodes)


Begin by ensuring that your system is up to date. Open a terminal and execute
the following commands:

sudo apt update && apt upgrade -y

Step 2: Disable Swap (all nodes)

To enhance Kubernetes performance, disable swap and set essential kernel


parameters. Run the following commands on all nodes to disable all swaps:

sudo swapoff -a

sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

Step 3: Add Kernel Parameters (all nodes)

Load the required kernel modules on all nodes:

sudo tee /etc/modules-load.d/containerd.conf <<EOF

overlay

br_netfilter
EOF

sudo modprobe overlay

sudo modprobe br_netfilter

Configure the critical kernel parameters for Kubernetes using the following:

sudo tee /etc/sysctl.d/kubernetes.conf <<EOF

net.bridge.bridge-nf-call-ip6tables = 1

net.bridge.bridge-nf-call-iptables = 1

net.ipv4.ip_forward = 1

EOF

Then, reload the changes:

Install Kubernetes 1
sudo sysctl --system

Step 4: Install Containerd Runtime (all nodes)

We are using the containerd runtime. Install containerd and its dependencies
with the following commands:

sudo apt install -y curl gnupg2 software-properties-common apt-transport-https ca-


certificates

Enable the Docker repository:


sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --
dearmour -o /etc/apt/trusted.gpg.d/docker.gpg

sudo add-apt-repository "deb [arch=amd64]


https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

Update the package list and install containerd:

sudo apt update

sudo apt install -y containerd.io

Configure containerd to start using systemd as cgroup:

containerd config default | sudo tee /etc/containerd/config.toml >/dev/null 2>&1

sudo sed -i 's/SystemdCgroup \= false/SystemdCgroup \= true/g'


/etc/containerd/config.toml

Restart and enable the containerd service:

sudo systemctl restart containerd


sudo systemctl enable containerd

Step 5: Add Apt Repository for Kubernetes (all nodes)

Kubernetes packages are not available in the default Ubuntu 22.04 repositories.
Add the Kubernetes repositories with the following commands:

Install Kubernetes 2
curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo gpg --
dearmour -o /etc/apt/trusted.gpg.d/kubernetes-xenial.gpg

sudo apt-add-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main"

Step 6: Install Kubectl, Kubeadm, and Kubelet (all nodes)

After adding the repositories, install essential Kubernetes components,


including kubectl, kubelet, and kubeadm, on all nodes with the following
commands:

sudo apt update

sudo apt install -y kubelet kubeadm kubectl

sudo apt-mark hold kubelet kubeadm kubectl

Step 7: Initialize Kubernetes Cluster with Kubeadm (master node)

With all the prerequisites in place, initialize the Kubernetes cluster on the master
node using the following Kubeadm command:

sudo kubeadm init —apiserver-advertise-address 192.168.10.100 —pod-network-


cidr 10.244.0.0/16

To start using your cluster, you need to run the following as a regular user:

mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

sudo chown $(id -u):$(id -g) $HOME/.kube/config

Alternatively, if you are the root user, you can run:

export KUBECONFIG=/etc/kubernetes/admin.conf

You should now deploy a pod network to the cluster.

Run "kubectl apply -f [podnetwork].yaml" with one of the options listed at:

https://kubernetes.io/docs/concepts/cluster-administration/addons/

Example(Flannel): kubectl apply -f https://github.com/flannel-


io/flannel/releases/latest/download/kube-flannel.yml

Install Kubernetes 3
Then you can join any number of worker nodes by running the following on each
as root:

kubeadm join 146.190.135.86:6443 --token f1h95l.u4nkex9cw8d0g63w \

--discovery-token-ca-cert-hash
sha256:6d15f2a79bdb38d1666af50c85f060b9fadc73f13c932e0e2a9eeef08f51f91a

After the initialization is complete make a note of the kubeadm join command for
future reference.

Run the following commands on the master node:


mkdir -p $HOME/.kube

sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config


sudo chown $(id -u):$(id -g) $HOME/.kube/config

Next, use kubectl commands to check the cluster and node status:
kubectl get nodes

Step 8: Add Worker Nodes to the Cluster (worker nodes)


On each worker node, use the kubeadm join command you noted down earlier:

kubeadm join 146.190.135.86:6443 --token f1h95l.u4nkex9cw8d0g63w --


discovery-token-ca-cert-hash
sha256:6d15f2a79bdb38d1666af50c85f060b9fadc73f13c932e0e2a9eeef08f51f91a

Step :9 Install Kubernetes Network Plugin (master node)


To enable communication between pods in the cluster, you need a network
plugin. Install the Calico network plugin with the following command from the
master node:

kubectl apply -f
https://raw.githubusercontent.com/projectcalico/calico/v3.25.0/manifests/calico.yaml

Step 10: Verify the cluster and test (master node)

Install Kubernetes 4
Finally, we want to verify whether our cluster is successfully created.

kubectl get pods -n kube-system


kubectl get nodes

Step 11: Deploy test application on cluster (master node)


kubectl run nginx --image=nginx

Install Kubernetes 5

You might also like