Cloud Computing Tutorial
- What is Cloud Computing
- Basics of Cloud Computing
- CLOUD COMPUTING
- DEPLOYMENT MODELS
- Utility Computing
- Types of Cloud
- Grid Computing
- Cloud Computing-Architecture
- Private Cloud
- Hybrid Cloud
- Service-Oriented Architecture (SOA)
- Cloud Computing – Virtualization
- Cloud Computing Tenets
- Community Cloud
- Cloud Models
- Data Storage
- Internet and the Web
- IOT (Internet of Things)
- Mobile Cloud Computing
Kubernetes is one of the cluster management tools which comes into DevOps. It is one of the open-source container management tools created by the Cloud Native Computing Foundation (CNCF). Kubernetes is also abbreviated with K8s. In this topic, we are going to learn about Kubernetes Architecture. Kubernetes possess various features which are like adding feathers on these tools, which are described as below:
- Containerized infrastructure
- Continuous Integration, Continuous Development, and Continuous Deployment.
- Effective resource utilization.
- Prominent Environment creation across all teams of development and testing.
- Load balancing concept due to which auto-scaling of entire infrastructure takes place.
- Application-oriented management.
Its one of the main components is that It can run applications both physical clusters or virtual machine.
As it is one of the cluster management tools, it helps in moving the entire infrastructure from host-centric infrastructure to containerization-centric infrastructure.
Architecture of Kubernetes
Let’s walk around the architecture of Kubernetes:
Kubernetes basically follows client-server architecture, which is being replaced here with the master-slave concept of nodes or cluster management.
The key components of the master and node are as follows:
Master Machine Components
etcd is a master machine component that contains the key-value or the security key, which consists of sensitive information about the applications or machine which can be interacted with using master machine API. It is a high-value key that can be accessed across multiple containers.
The API server consists of an interface that is used to interact across varied operational clusters. It has a special package naming kubeconfig along with the server-side to establish a successful communication between server and nodes.
Further, a controller Manager also has many internal components such as an endpoint controller, replication controller, namespace controller. They all are used to control all the controllers. It mostly works towards getting the state of the common cluster via current status to desired cluster status.
Distribution of workload is taken care of by Scheduler, which is used by tracking utilization of workload on resources, i.e. it is a way to get the internal communication establishment with the pods and nodes available over the Linux machine.
Kubernetes Node Components
Kubernetes is incomplete without docker because it helps in creating a lightweight containerization environment that helps the encapsulated docker containers communicate properly and efficiently. It is a very vital requirement to be learned before Kubernetes.
Kubelet service is a minor service that is used by the Kubernetes node to interact with the etcd component of the Kubernetes master machine and is used to keep the necessary key values or any other sensitive information regrading the master and the worker node used for communication. Mainly it includes tasks like port forwarding, network rules, etc.
It is a component that is used to run its service on each node and to make services available to the external host. It basically takes responsibility for primitive load balancing. It makes sure that all the network configuration, volumes, pods, and nodes are up and running with a positive health check. Therefore, creating a new service and new containers.
Benefits of Kubernetes Architecture
As developed by Borg and Omega, it has the following benefits
- It performs and helps in the proper orchestration of services and clusters containing different containers.
- Application-centric infrastructure is its main motto; those older ways of deploying one virtual machine application is not efficient. Therefore, many applications inside containers can establish communication and perform activities effectively.
- Velocity: With the feature of Continuous integration and continuous deployment, it has a very good feature of increasing the speed and agility of the product enhancement.
- Declarative configuration: This feature helps in providing configurations with ease inside the application using YAML files and state cluster keys, and sensitive information.
- Resource Management: With all nodes, clusters, Volumes, and pods in the same application, it helps in managing resources in a streamlined fashion.