DevOps: Introduction to Kubernetes

Introduction to Kubernetes: Handling containerization application

What is Kubernetes ?
Today I am going to talk about the Kubernetes. Most of the people know about the Kubernetes. Kubernetes is an open source system for handling containerization application. Technologies like Docker bring a container framework, but they don't transport the scalability, deployment, and management qualities delivered by Kubernetes. 

With Kubernetes, it's inconsequential to achieve tasks such as "keep at least two and no more than ten copies of this container running," "start a new container if one fails," and "balance all of the traffic controlled to these containers." Kubernetes makes it easy to make containers scale.

The platform offers comprehensive application lifecycle management functionality and DevOps tooling. Out of the box, Many providers offers full monitoring insights into the hosts and applications you can deploy with Kubernetes.

Fig 1.1- Kubernetes Architecture
With the help of Kubernetes, you can orchestrates computing, networking, and storage infrastructure on behalf of user workloads. This offers much of the straightforwardness of Platform as a Service (PaaS) with the flexibility of Infrastructure as a Service (IaaS), and enables portability across infrastructure providers.

Kubernetes delivers a lot of functionality, there are always new circumstances that would profit from new features. Application-specific workflows can be restructured to quicken developer swiftness. 

Orchestration that is satisfactory originally often needs vigorous automation at scale. This is why Kubernetes was also designed to serve as a platform for building an ecosystem of components and tools to make it easier to deploy, scale, and manage applications.

Like any technology, there are a lot of words specific to the technology that can be a barrier to entry. Let's break down some of the more common terms to help you understand Kubernetes.

Master: The machine that controls Kubernetes nodes. This is where all task assignments originate.
Node: These machines perform the requested, assigned tasks. The Kubernetes master controls them.
Pod: A group of one or more containers deployed to a single node. All containers in a pod share an IP address, IPC, hostname, and other resources. Pods abstract network and storage away from the underlying container. This lets you move containers around the cluster more easily.
Replication controller:  This controls how many identical copies of a pod should be running somewhere on the cluster.
Service: This decouples work definitions from the pods. Kubernetes service proxies automatically get service requests to the right pod—no matter where it moves to in the cluster or even if it’s been replaced.
Kubelet: This service runs on nodes and reads the container manifests and ensures the defined containers are started and running.

kubectl: This is the command line configuration tool for Kubernetes.