Hi there. In this article I would be talking about Container Orchestration, What is Kubernetes, History, k8s cluster, what it can do, k8s vs docker. Let's gošš
It would be best if you have a basic understanding of Container Orchestration to learn exactly what Kubernetes is
Container Orchestration:
Container orchestration is the automation of much of the operational effort required to run containerized workloads and services. This includes a wide range of things software teams need to manage a containerās lifecycle, including provisioning, deployment, scaling (up and down), networking, load balancing and more.
Orchestration simply means the automation of numerous processes that run concurrently in order to reduce production issues
Automation refers to automating a single process or a small number of related tasks. Orchestration refers to managing multiple automated tasks to create a dynamic workflow.
So we are now familiar with Container Orchestration, let's see what kubernetes is
What is Kubernetes?
- Kubernetes (also known as k8s or ākubeā) is an open source container orchestration platform pioneered by Google that automates many of the manual processes involved in deploying, managing, and scaling containerized applications.
- Kubernetes is shortened as the āK8sā from the first (K) and the last (s) characters and the 8 characters in between (ubernete)
- It distributes application workloads across a Kubernetes cluster and automates dynamic container networking needs. Kubernetes also allocates storage and persistent volumes to running containers, provides automatic scaling, and works continuously to maintain the desired state of applications, providing resiliency.
Kubernetes History:
- Kubernetes was originally developed by Google
- Kuberneteās design has been heavily influenced by Googleās āBorgā project ā a similar system used by Google to run much of its infrastructure.
- Kubernetes has since been donated to the Cloud Native Computing Foundation (CNCF), a collaborative project between the Linux Foundation and Google, Cisco, IBM, Docker, Microsoft, AWS and VMware.
- Google donated the Kubernetes project to the newly formed Cloud Native Computing Foundation (CNCF) in 2015.
What is a Kubernetes cluster?
A Kubernetes cluster is what you get when you deploy Kubernetes on physical or virtual machines. It consists of two types of machines:
- Workers: the resources used to run the services needed to host containerised workloads
- Control plane hosts: used to manage the workers and monitor the health of the entire system
What does Kubernetes do?
- The primary advantage of using Kubernetes in your environment, especially if you are optimizing app development for the cloud, is that it gives you the platform to schedule and run containers on clusters of physical or virtual machines (VMs).
- Enterprises adopt Kubernetes to cut down operational costs, reduce time-to-market, and transform their business. Developers like container-based development, as it helps break up monolithic applications or single unified applications into more maintainable microservices.
With Kubernetes you can:
- Orchestrate containers across multiple hosts.
- Make better use of hardware to maximize resources needed to run your enterprise apps.
- Control and automate application deployments and updates.
- Mount and add storage to run stateful apps.
- Scale containerized applications and their resources on the fly.
- Declaratively manage services, which guarantees the deployed applications are always running the way you intended them to run.
- Health-check and self-heal your apps with autoplacement, autorestart, autoreplication, and autoscaling.
Kubernetes Vs Docker:
Often misunderstood as a choice between one or the other, Kubernetes and Docker are different yet complementary technologies for running containerized applications.
Docker lets you put everything you need to run your application into a box that can be stored and opened when and where it is required. Once you start boxing up your applications, you need a way to manage them; and that's what Kubernetes does.
Kubernetes is a Greek word meaning ācaptainā in English. Like the captain is responsible for the safe journey of the ship in the seas, Kubernetes is responsible for carrying and delivering those boxes safely to locations where they can be used.
Kubernetes can be used with or without Docker
- Docker is not an alternative to Kubernetes, so itās less of a āKubernetes vs. Dockerā question. Itās about using Kubernetes with Docker to containerize your applications and run them at scale
- The difference between Docker and Kubernetes relates to the role each play in containerizing and running your applications
- Docker is an open industry standard for packaging and distributing applications in containers
- Kubernetes uses Docker to deploy, manage, and scale containerized applications
This article doesn't cover the entire Kubernetes Basics but it should give you a brief insight of k8s.
Thanks for taking the time out of your busy day to either read or skim over this article, your feedback is most welcome.šš