0% found this document useful (0 votes)
167 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
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
167 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
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