#KubeWeek #trainwithshubham

The KubeWeek Challenge: Day 1

Introduction

Gaurav Bharane
4 min readAug 13, 2024

--

Welcome to Day 1 of the KubeWeek Challenge! Today, we’re diving into the core components of Kubernetes. Whether you’re new to Kubernetes or need a refresher, this post will guide you through the key concepts and practical steps to get started with Kubernetes. By the end of the day, you’ll have a solid understanding of how Kubernetes is structured and how its components interact to manage containerized applications.

Understanding Kubernetes Architecture

Kubernetes, often abbreviated as K8s, is an open-source platform designed to automate deploying, scaling, and operating application containers. The architecture of Kubernetes is composed of several core components:

1. Kubernetes API Server

The API Server is the heart of Kubernetes. It exposes the Kubernetes API, which is the primary way to interact with the cluster. All administrative tasks, such as creating pods or services, are processed through the API server.

  • Key Function: Acts as the front-end of the Kubernetes control plane.
  • Command to View:
kubectl get pods -n kube-system | grep kube-apiserver

2. etcd

etcd is a distributed key-value store used to persist Kubernetes cluster state. It stores all the data used to manage the cluster, including the state of the nodes, pods, and other resources.

  • Key Function: Stores configuration data that can be distributed across nodes in the cluster.
  • Command to View:
kubectl get pods -n kube-system | grep etcd

3. kube-scheduler

The kube-scheduler watches for newly created pods that have no node assigned and selects an appropriate node for them to run on based on resource availability and policies.

  • Key Function: Assigns pods to nodes based on constraints and available resources.
  • Command to View:
kubectl get pods -n kube-system | grep kube-scheduler

controller-manager

This component runs a set of controllers, which are responsible for maintaining the desired state of the cluster. For instance, the replication controller ensures that the specified

4. kube-controller-manager:

  • This component runs controllers, which are control loops that watch the state of your cluster and make changes to achieve the desired state.

5. kubelet:

  • The kubelet is an agent that runs on each node in the cluster. It ensures that the containers described in PodSpecs are running and healthy

Installing Kubernetes and Minikube:

To install and configure the Kubernetes cluster. We’ll use minikube, a tool that simplifies the process of setting up a Kubernetes cluster.

Prerequisites

  • Operating System: Ubuntu 20.04 LTS
  • CPU and RAM: At least 2 CPUs and 2GB RAM per node
  • Network: Connection must be established between all nodes

Step 1: Update System Packages

Update your package lists to make sure you are getting the latest version and dependencies.

sudo apt update

Step 2: Install Docker

Minikube can run a Kubernetes cluster either in a VM or locally via Docker. This guide demonstrates the Docker method.

sudo apt install -y docker.io

Enable Docker.

sudo systemctl enable --now docker

Step 3: Install Minikube

Download the Minikube binary using curl:

curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64

Make it executable and move it into your path:

chmod +x minikube
sudo mv minikube /usr/local/bin/

Step 5: Install kubectl

Download kubectl, which is a Kubernetes command-line tool.

curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"

Step 6: Start Minikube

Now, you can start Minikube with the following command:

minikube start --driver=docker

Step 7: Cluster Status

Use kubectl to interact with your cluster:

kubectl get nodes

Conclusion

Kubernetes is a robust platform for orchestrating containerized applications, and a deep understanding of its architecture and core components is crucial for effective use. In this blog, we’ve explored the foundational aspects of Kubernetes, including the control plane, worker nodes, and essential components like Pods, Services, and Deployments. We’ve also guided you through setting up and configuring Kubernetes with Minikube, as well as an introduction to managed Kubernetes services.

By the end of this 7-day challenge, you’ll have a strong grasp of Kubernetes fundamentals and be on the path to becoming a Kubernetes expert. Stay tuned for more detailed tutorials and hands-on projects throughout KubeWeek!

#TrainwithShubham #kubernetes #KubeWeek

--

--

Gaurav Bharane
Gaurav Bharane

Written by Gaurav Bharane

I am a qualified and passionate Developer with a experience in Redhat Linux administration and Computer Programming. Strong creative and analytical skills.

No responses yet