top of page

Kubernetes Overview

Updated: Nov 14, 2022


Kubernets is an open source container orchestration tool it helps to manage containerized applications in any environements (Physical, Virtual and Cloud). Fundamentals of a K8s is Extendable, Easy to Use and Secure.


Features of K8s:

GendhamCloud

The components of a K8s cluster:

Control plane components (master brain): It manage, plan, schedule and monitor overall K8s nodes. No user workloads will be scheduled here to avoid impact on the overall operation of the cluster.

  • kube-apiserver: This is the front end for the K8s control plane.

  • etcd: etcd is a distributed key-value store used as K8s backing store for all cluster data.

  • kube-scheduler: Monitors for newly created Pods and assigns a node for them to run.

  • kube-controller manager: Ensures that all of the replicas of a service are available and healthy

Node components(worker nodes): This components runs on every node, maintaining running pods and enables Containers Runtime Environment(CRE). Node is a VM or a physical computer that servers as a worker machine in a K8s cluster.

  • kubelet: An agent that runs on each node and it makes sure that containers are running in a Pod.

  • kube-proxy: The Kubernetes proxy is responsible for routing network traffic to load-balanced services in the Kubernetes cluster.


GendhamCloud

K8s Client:

The official K8s client is kubectl - A CLI tool for interacting with the K8s API. kubectl is used to manage K8s objects such as Pods, Services, ReplicaSets.


Main K8s components:

Pod - A Pod is a collection of application containers and volumes running in the same execution environment. Pods are described in a Pod manifest and submit to the kube API server, the K8s scheduler finds a server where the Pod can fit and schedules the Pod to that server. Once scheduled kubelet deamon on that server is responsable for creating the containers that relates to the Pod.

Pod is a collection of containers that can run on a host. This resource is created by clients and scheduled onto hosts.

  • Pods are the smallest unit of K8s

  • Each Pod gets it's own IP address, Pods are nonpermanent resources

  • Generally one application per Pod

  • When Pod recreates it gets new IP address,ths it's ephemeral, so application can't realy on the Pod IP address, thus we use service for mapping(see below).

Service - A service is responsible for enabling network access to a set of pods. A service is required because pods in the set are ephemeral(nonpermanent), the set of Pods targeted by a service is usually determined by a selector. Each service is assigned a unique IP address (also called clusterIP).

  • The service unique IP address stay even if the Pod terminates

  • A service can map any incoming port to a targetport.

Namespace - Kubernetes uses namespaces to organize objects in the cluster, consider each namespace as a folder that holds a set of objects. kubectl CLI interacts with the default namespace, you can switch to different namespace as required.

Context - Contexts used to manage different clusters or different users for authenticating to those clusters using the --users or --clusters flags with the set-context command.

Comments


Follow

  • Facebook
  • Twitter
  • LinkedIn

©2024 by GendhamCloud.

bottom of page