Glitch
4 min readJan 13, 2023

What is Kubernetes?

First, we need to understand what Kubernetes is. In recent years, the latest IT technologies such as cloud computing, big data, artificial intelligence, and the Internet of Things have brought about major technological changes in IT and are rapidly sweeping the world. These new technologies are becoming more familiar as they are gradually applied and incorporated into our lives.
Cloud computing is the cornerstone of these new technologies and is slowly evolving into an IT infrastructure like water, electricity and natural gas. Today, our daily lives are closely related to cloud computing, big data, transportation, communication, leisure and entertainment, shopping, and other inseparable things.
Container technology took a long time to develop. In the process of developing cloud computing technology, container technology has been widely recognized and applied to large-scale IT infrastructure. For example, GA by Google, Microsoft, Azure by Microsoft, Cloud Foundry by VM-Ware. With the rise of Docker containers and the establishment of CNCF, Docker container technology has formed a vast ecosystem.

Many anti-enterprises, including OS vendors, virtualization vendors, cloud service providers, and traditional IT giants, are all becoming users of Docker container technology. This is because Docker containers allow developers and users to package their applications in lightweight images and run them in finer-grained containers. Docker also allows you to quickly deploy and run your applications on various computing platforms. How can the application respond to rapidly changing business needs? So what is Kubernetes? Before adopting Kubernetes, you should understand the basics of Borg. For decades, Google has used container technology to support its business. Borg is a system for managing large clusters. Google uses Borg to manage applications running on thousands of servers in its data centers. All these applications come in the form of containers. Borg is Google’s closed source tool for managing containers at scale. During this time, Google hid the technical details of Borg and hid it as a competitive advantage.

Why do we need Kubernetes if we have docker?

Kubernetes is open-source orchestration software that provides an API to control how and where those containers will run. It allows you to run your Docker containers and workloads and helps you to tackle some of the operating complexities when moving to scale multiple containers, deployed across multiple servers.

Benefits

1. Container orchestration savings

2. Increased DevOps efficiency for microservices architecture

3. Deploying workloads in multicloud environments

4. More portability with less chance of vendor lock-in

5. Automation of deployment and scalability

6. App stability and availability in a cloud environment

7. Open-source benefits of Kubernetes

Architecture Of Kubernetes

Kubernetes — Master Machine Components

Following are the components of Kubernetes Master Machine.

etcd

It stores the configuration information which can be used by each of the nodes in the cluster. It is a high availability key value store that can be distributed among multiple nodes. It is accessible only by Kubernetes API server as it may have some sensitive information. It is a distributed key value Store which is accessible to all.

API Server

Kubernetes is an API server which provides all the operation on cluster using the API. API server implements an interface, which means different tools and libraries can readily communicate with it. Kubeconfig is a package along with the server side tools that can be used for communication. It exposes Kubernetes API.

Controller Manager

This component is responsible for most of the collectors that regulates the state of cluster and performs a task. In general, it can be considered as a daemon which runs in nonterminating loop and is responsible for collecting and sending information to API server. It works toward getting the shared state of cluster and then make changes to bring the current status of the server to the desired state. The key controllers are replication controller, endpoint controller, namespace controller, and service account controller. The controller manager runs different kind of controllers to handle nodes, endpoints, etc.

Scheduler

This is one of the key components of Kubernetes master. It is a service in master responsible for distributing the workload. It is responsible for tracking utilization of working load on cluster nodes and then placing the workload on which resources are available and accept the workload. In other words, this is the mechanism responsible for allocating pods to available nodes. The scheduler is responsible for workload utilization and allocating pod to new node.

Kubernetes — Node Components

Following are the key components of Node server which are necessary to communicate with Kubernetes master.

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

This is a small service in each node responsible for relaying information to and from control plane service. It interacts with etcd store to read configuration details and wright values. This communicates with the master component to receive commands and work. 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

This is a proxy service which runs on each node and helps in making services available to the external host. It helps in forwarding the request to correct containers and is capable of performing primitive load balancing. It makes sure that the networking environment is predictable and accessible and at the same time it is isolated as well. It manages pods on node, volumes, secrets, creating new containers’ health checkup, etc.

Kubernetes — Master and Node Structure

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

No responses yet