Kubernetes Cluster Step By Step

neeraj1997dev

Neeraj Kumar

Posted on January 1, 2024

Kubernetes Cluster Step By Step

A Kubernetes cluster is a group of nodes or machines running together. At the highest level of Kubernetes, there are two types of servers: a Master node and Worker nodes. These servers can be either Virtual Machines (VMs) or physical servers (Bare metal). Together, these servers form a Kubernetes cluster, and they are controlled by the services that make up the Control Plane.

Prerequisites:

  • Choose a Cloud Provider: Popular choices include AWS, Google Cloud Platform (GCP), Microsoft Azure, and others. Alternatively, you can use on-premises solutions like VMware or tools like Minikube for local development.

  • Install Necessary Tools: kubectl: Kubernetes command-line tool kubeadm, kubelet, and kubernetes-cni: Install these on each cluster node.

Step 1: Provision the Infrastructure
On Cloud Providers:

  • Create VM instances or nodes based on your chosen provider.

  • Ensure that each node has a compatible OS (Ubuntu, CentOS, etc.).
    

On-Premises or Local:

  • Set up physical or virtual machines.
    
  • Ensure network connectivity between nodes.
    

Step 2: Install Docker (or Another Container Runtime)
Install Docker on each node or use an alternative container runtime:



# For Ubuntu
sudo apt update
sudo apt install docker.io
sudo systemctl enable --now docker



Enter fullscreen mode Exit fullscreen mode

Step 3: Install kubeadm, kubelet, and kubectl



# For Ubuntu
sudo apt-get update && sudo apt-get install -y apt-transport-https curl
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 /etc/apt/sources.list.d/kubernetes.list
sudo apt-get update
sudo apt-get install -y kubelet kubeadm kubectl
sudo systemctl enable --now kubelet



Enter fullscreen mode Exit fullscreen mode

Step 4: Initialize the Master Node



sudo kubeadm init --pod-network-cidr=10.244.0.0/16



Enter fullscreen mode Exit fullscreen mode

Step 5: Set Up Cluster Networking
Choose a network plugin for your cluster. For example, Calico or Flannel. Install the chosen plugin on the master node:



kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml



Enter fullscreen mode Exit fullscreen mode

Step 6: Join Worker Nodes
run the kubeadm join command provided at the end of the master node initialization.



sudo kubeadm join <master-node-ip>:<master-node-port> --token <token> --discovery-token-ca-cert-hash <hash>



Enter fullscreen mode Exit fullscreen mode

Step 7: Verify Cluster Setup

On the master node, run:



kubectl get nodes
kubectl get pods --all-namespaces



Enter fullscreen mode Exit fullscreen mode

Step 8: Deploy an Application
Deploy a sample application to test your cluster:



kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort



Enter fullscreen mode Exit fullscreen mode

Step 9: Access Your Application
Retrieve the NodePort and access the deployed application:



kubectl get svc



Enter fullscreen mode Exit fullscreen mode

Visit http://node-ip:node-port in your web browser.

https://kubernetes.io/

๐Ÿ’– ๐Ÿ’ช ๐Ÿ™… ๐Ÿšฉ
neeraj1997dev
Neeraj Kumar

Posted on January 1, 2024

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related

ยฉ TheLazy.dev

About