Kubernetes — Architecture

As seen in the following diagram, Kubernetes follows a
client-server architecture. Wherein, we have master installed on one machine and the node on separate Linux machines.

Kubernetes — Components


Node
Kubernetes runs your workload by placing containers into Pods to run on Nodes. A node may be a virtual or physical machine, depending on the cluster. Each node contains the services necessary to run Pods, managed by the control plane.

Cluster
A Kubernetes cluster is a set of node machines for running containerized applications. If you’re running Kubernetes, you’re running a cluster. At a minimum, a cluster contains a worker node and a master node.
Master
The Kubernetes master runs the Scheduler, Controller Manager, API Server and etcd components and is responsible for managing the Kubernetes cluster. Essentially, it’s the brain of the cluster!

Kubernetes — Master and Node Structure

The following illustrations show the structure of Kubernetes Master and Node.
master-node structure.

Kubernetes — master components

etcd

  1. key-value store
  2. storing all data used to manage the cluster.
  3. etcd store all the information on the node in a distributed manner.
  4. implementing logs.
  5. It is accessible only by Kubernetes API server as it may have some sensitive information

API Server

  1. acts as a frontend for Kubernetes.
  2. users, commenting interface all talk to API server to interact with the Kubernetes cluster.
  3. When you interact with your Kubernetes cluster using the kubectl command-line interface, you are actually communicating with the master API Server component.

Controller Manager

  1. The brain behind the orchestration
  2. they are responsible when nodes are down, and responding to the master.
  3. controller make up the decision to bring up a new container in such a case.
  4. Controller Manager performs lifecycle functions such as namespace creation and lifecycle, event garbage collection, terminated-pod garbage collection, cascading-deletion garbage collection, node garbage collection

Scheduler

  1. The scheduler is responsible for distributing the work or containers(pods)across multiple nodes.
  2. It is responsible for tracking the utilization of working load on cluster nodes and then placing the workload on which resources are available and accept the workload.

Kubernetes — Node Components

Docker

The first requirement of each node is Docker which helps in running the encapsulated application containers in a relatively isolated but lightweight operating environment.

Kubelet Service

  1. Responsible for making sure that pods is running on the node has expected.
  2. It interacts with etcd store to read configuration details and wright values.
  3. This communicates with the master component to receive commands and work
  4. The kubelet process then assumes responsibility for maintaining the state of work and the node server. It manages network rules, port forwarding, etc.

Kubernetes Proxy Service

  1. This is a proxy service that runs on each node and helps in making services available to the external host.
  2. It makes sure that the networking environment is predictable and accessible and at the same time it is isolated as well
  3. It manages pods on node, volumes, secrets, creating new containers’ health checkups, etc.
WRITTEN BY
Harshal Kathar

DevOps Engineer


Comments