Programs

Kubernetes Cheat Sheet: Architecture, Components, Command Sheet

Kubernetes has become an essential part of industries and is changing the world of technology. Janet Kuo, the co-chair of KubeCon, addressed the Kubernetes features and its importance in the coming time. She talks about the Kubernetes extensions and solutions that will change the world

Top Machine Learning Courses & AI Courses Online

This cheat sheet will provide a reference to working professionals in the implementation of Kubernetes. It contains all the necessary details to help beginners who are new to Kubernetes. The Kubernetes Cheat Sheet is a quick and handy medium to refer to all the essential concepts and commands of Kubernetes.

Enrol for the Machine Learning Course from the World’s top Universities. Earn Masters, Executive PGP, or Advanced Certificate Programs to fast-track your career.

About Kubernetes

An open-source platform for automatic deployment and scaling containers across the clusters of hosts to provide container-centric infrastructure is known as Kubernetes (also known as “Kube” or k8s). It allows easy and efficient management of different hosts running Linux containers by clustering them. 

Kubernetes is a platform that is designed for managing the life cycle of containerized applications and services completely. A Kubernetes user can define the ways in which an application should run and interact with different applications.

Trending Machine Learning Skills

Users can switch traffic between different versions of applications, perform updates, scale up and down the services, etc. with Kubernetes. It offers users a high degree of flexibility, reliability, and power in managing applications.

Some of the major features of Kubernetes are:

  • Maximize resources by making better use of hardware.
  • A container orchestrator across multiple hosts.
  • Automate the deployment process and updates.
  • Able to run a Linux container.
  • Auto-scaling helps in launching containers on cluster nodes.
  • Scaling up and down as required.
  • Self-healing by replacing, rescheduling, and restarting the dead containers.
  • Automated rollbacks and rollouts.
  • Load balancing and service discovery.
  • Auto-restart, auto-placement, and auto-replication, etc. 

Read: Deep Learning Algorithm

Architecture of Kubernetes

The architecture of Kubernetes consists of layers: Higher and lower layers. The complexity of abstracting the higher layer can be found in the lower layers. The individual physical or virtual machines are brought together into a cluster. A shared network is used for communication between each server. So, just like other distributed platforms, Kubernetes has one master (at least), and multiple compute nodes.

  • The master of Kubernetes schedules the deployments, exposes the API and manages the overall Kubernetes cluster.
  • The node runs a container runtime, agent for communicating with the master, and other monitoring components, logging, etc.

Components of Kubernetes architecture

Let’s have a look at the purpose and components of master and nodes in the Kubernetes architecture.

Master

The master maintains the desired state of the cluster. Since it manages the whole cluster, it is called master. It contains:

  • API server: Kubernetes API server
  • Scheduler: Used for pod scheduling in worker nodes
  • Controller: Manages pod replication
  • Etcd: A metadata service

Nodes

It contains necessary services that are important for running the pods. The master manages the nodes. It is also called Minion. It contains:

  • Pod: Group of containers
  • Docker: Container-based technology, user space of OS.
  • Kubelet: Container agents that are responsible for maintaining the set of pods.
  • Kube-proxy: Routes traffic coming into a node from the service

Now, let’s understand the important commands of Kubernetes.

Kubectl Commands

Kubectl is the command-line tool for Kubernetes. The basic Kubectl commands can be divided into:

  • Pod and Container Introspection
  • Cluster Introspection
  • Debugging
  • Quick Commands
  • Objects

Pods and Container Introspection

Functionality Command
For describing pod names Kubectl describe pod<name>
For listing all current pods Kubectl get pods
For listing all replication controllers Kubectl get rc
For showing the replication controller name Kubectl describe rc <name>
For listing replication controllers in a namespace Kubectl get rc –namespace=”namespace”
For showing a service name Kubectl describe svc<name>
For listing services Kubectl get cvc
For watching nodes continuously. Kubectl get nodes -w
For deleting a pod Kubectl delete pod<name>

 Cluster Introspection

Functionality Command
For getting version-related information Kubectl version
For getting configuration details Kubectl config g view
For getting cluster-related information Kubectl cluster-info
For getting information about a node Kubectl describe node<node>

Debugging Commands

Functionality Command
For displaying metrics for a pod Kubectl top pod
For displaying metrics for a node Kubectl top node
For watching Kubelet logs Watch -n 2 cat/var/log/kublet.log
For getting logs from the service for the container Kubectl logs -f<name>>[-c< $container>]
For the execution of the command on service by selecting a container Kubectl exec<service><commands>[-c< $container>]

Quick Commands

The below quick commands are often used and hence, very useful.

Functionality Command
For launching a pod with a name and an image. Kubectl run<name> — image=<image-name>
For creating a service described in <manifest.yaml> Kubectl create -f <manifest.yaml>
For scaling the replication counter to count the number of instances. Kubectl scale –replicas=<count>rc<name>
For mapping the external port to the internal replication port. Expose rc<name> –port=<external>–target-port=<internal>
For stopping all pods in <n> Kubectl drain<n>– delete-local-data–force–ignore-daemonset
For creating a namespace. Kubectl create namespace <namespace>
For allowing the master node to run pods. Kubectltaintnodes –all-node-role.kuernetes.io/master-

Objects

Some of the familiar objects used in Kubernetes are as follows:

List of Common Objects
All Controller revisions
cm= conf gmaps Cluster role bindings
Cronjobs cs=component statuses
Deploy=deployments limits=limit ranges
ev= events hpa= horizontal pod autoscaling
jobs ds= daemon sets
No = nodes ns= namespaces
po= pods Pod preset
Psp= pod security policies Pv= persistent volumes
quota= resource quotas rs= replica sets
roles rc= replication controllers
sc= storage classes pdb= pod distribution budgets
clusterroles secrets
crd=custom resource definition Pod templates
csr= certificate signing requests sa= service accounts
Netpol- network policies Role bindings
ing= ingress pvc= persistent volume claims
ep=end points sts= stateful sets

Also Read: Regularization in Deep Learning

Kubernetes Command Cheat Sheet

All the basic information about Kubernetes, it’s architecture and commands are shown in below Kubernetes cheat sheet: 

Popular AI and ML Blogs & Free Courses

If you’re interested to learn more about deep learning techniques, machine learning, check out IIIT-B & upGrad’s PG Diploma in Machine Learning & AI which is designed for working professionals and offers 450+ hours of rigorous training, 30+ case studies & assignments, IIIT-B Alumni status, 5+ practical hands-on capstone projects & job assistance with top firms.

What is Kubernetes?

Kubernetes is an open-source platform for automating deployment, scaling, and management of containers. A container is a ready-to-run software package that contains everything required to run the application: code, runtime environment, application, and system libraries. The containers are like logical units of application, and when Kubernetes groups them, it becomes easy to manage and discover the containers. These containers are deployed and scaled across hosts to provide a container-centric infrastructure. In short, it is a platform that manages the entire lifecycle of containerized applications.

What are the main components of Kubernetes architecture?

There are two main components in the Kubernetes architecture- master node and worker node. A node is the main worker machine which is important for running a group of clusters called pods. The whole cluster is managed by the master node, whereas the worker node performs the tasks assigned by the master node. These nodes have many inbuilt components within them. The master node contains Kubernetes API Server, Kubernetes Scheduler, Kubernetes Controller, and Etcd. The worker node has pod, docker, kubelet, and kube-proxy.

What do kubelet and kube-proxy do?

Kubelet, which is present in every node, ensures that containers are running well in a pod. It does so by taking a set of PodSpecs provided mainly through apiserver and checking the containers present in those PodSpecs. A PodSpec is a YAML or JSON object that describes a pod. Kubernetes Network Proxy, also known as kube-proxy, maintains network rules on nodes. Communication from network sessions inside or outside the cluster to pods is possible through these network rules. Kube-proxy forwards the traffic if the OS packet filtering layer is not available.

Want to share this article?

Lead the AI Driven Technological Revolution

PG DIPLOMA IN MACHINE LEARNING AND ARTIFICIAL INTELLIGENCE
Learn More

Leave a comment

Your email address will not be published. Required fields are marked *

Our Popular Machine Learning Course

Get Free Consultation

Leave a comment

Your email address will not be published. Required fields are marked *

×
Get Free career counselling from upGrad experts!
Book a session with an industry professional today!
No Thanks
Let's do it
Get Free career counselling from upGrad experts!
Book a Session with an industry professional today!
Let's do it
No Thanks