Kubernetes – Components / Cluster architecture – simplifying concepts – detailed article

kubernetes components / kubernetes architecture
kubernetes components / kubernetes architecture

Hi All,

Greetings for the day!!!

Lets continue Kubernetes series.

We are discussing Kubernetes. In previous few articles we discussed

Today we will discuss Kubernetes architecture and Kubernetes cluster

kubernetes components / kubernetes architecture
fig : kubernetes components / kubernetes architecture

Kubernetes cluster is collection of Nodes – either physical or virtual network where Kubernetes (Kubernetes components) installed

Nodes details

  • Machine either physical or virtual where Kuebernatics is installed
  • Worker machine where containers are launched by Kubernatics
  • Each node is managed by control plane
  • There are two types of Nodes
    • Master Node
    • Worker Node
  • Node Name – naming convention / best practices
    • Node name must be unique.
    • Name identifies the Node
    • Node name must be a valid DNS subdomain name
      • contain no more than 253 characters
      • contain only lowercase alphanumeric characters, ‘-‘ or ‘.’
      • start with an alphanumeric character
      • end with an alphanumeric character

Kubernetes Cluster Components

Master Node / Control Plane

  • Master node / control plane includes the components which controls cluster, its data state and its configuration
  • Each worker node managed by control plane and contains necessary components / services to successfully run the PODs
  • Control Plane Components:
    • API Server
      • Component of Kubernetes control plane that exposes the Kubernetes API
      • The API server services REST operations through which all other components interact
      • The API server is accessible from outside the cluster
      • Client (example – user executes the Kubectl command) authenticates via API server
    • etcd service
      • Distributed, reliable key value store to store all data to manage cluster
      • Store all the details on all nodes
      • responsible for implementing logs
      • Data in etcd is accessible only by Kubernetes API Server
    • Controllers
      • Kube controller manager
        • Component which runs controller processes
        • Few types of controllers are following which controller runs
          • Node Controller
            • Notices and responds when node goes down
            • Example –
              • When running in a cloud environment and whenever a node is unhealthy, the node controller asks the cloud provider if the VM for that node is still available.
              • If not, the node controller deletes the node from its list of nodes.
          • Job Controller
          • Replication controller – Controls number of replicas in a POD
          • EndPoints Controller – Populates end point objects like services and pods
          • Service account and Token Controllers
      • Cloud controller manager
        • This component is responsible for managing controller processes with dependencies on respective cloud provider
    • Schedulers
      • Responsible for distributing work across containers across multiple nodes
      • This means, responsible for scheduling Pods on respective worker nodes – Check for the PODs which are newly created and not assigned to any node – assigns the node to run successfully

Worker Nodes

  • Every Kubernetes cluster at least have one worker node
  • Worker node hosts the PODs – means our containerised application runs on worker node
  • Worker node components
    • Container Runtime
      • Container runtime engine (its a software) is responsible for running containers
      • Docker is one of the example of container runtime
    • Kubelet
      • This component runs on each node
      • This component makes sure that containers are running in a Pod
      • This component makes sure containers running in a Pods are in healthy state
    • Kube-Proxy
      • Proxy service runs on each node
      • This component implements part of Kubernetes Service concept
      • Exposes services on the external world
      • This component makes sure request is forwarded to correct container / POD in a cluster

Few Node CMDLETs – Here, I am using minikube

  • Get all nodes
kubectl get nodes

Output will be

Kubernetes node CMDLETS - kubectl get nodes
fig : Kubernetes node CMDLETS – kubectl get nodes
  • To get all labels of node
kubectl get nodes --show-labels

Output will be

Kubernetes node CMDLETS - kubectl get nodes
Kubernetes node CMDLETS – kubectl get nodes – show labels
  • To view the node status and other details – describe attribute to Kubectl cmdlet is used as
kubectl describe node <insert-node-name-here>

Kubernetes node CMDLETS - kubectl describe node - node details
fig : Kubernetes node CMDLETS – kubectl describe node – node details
Kubernetes node CMDLETS - kubectl describe node - node details

fig : Kubernetes node CMDLETS – kubectl describe node – node details

Thanks for reading!!! Please feel free to discuss in case any questions / suggestions / thoughts !!!

HAVE A GREAT TIME AHEAD !!! LIFE IS BEAUTIFUL 🙂

Prasham Sabadra

LIFE IS VERY BEAUTIFUL :) ENJOY THE WHOLE JOURNEY :) Founder of Knowledge Junction and live-beautiful-life.com, Author, Learner, Passionate Techie, avid reader. Certified Professional Workshop Facilitator / Public Speaker. Scrum Foundation Professional certificated. Motivational, Behavioral , Technical speaker. Speaks in various events including SharePoint Saturdays, Boot camps, Collages / Schools, local chapter. Can reach me for Microsoft 365, Azure, DevOps, SharePoint, Teams, Power Platform, JavaScript.

You may also like...

This site uses Akismet to reduce spam. Learn how your comment data is processed.

%d bloggers like this: