Kubernetes in Surabhi’s words!!!
What is Kubernetes?
The word is originated from Greek, meaning “helmsman”.
It’s an open-source container orchestrator tool that automates Linux container operations. It eliminates many of the manual processes involved in deploying and scaling containerized applications.
The platform was first developed by a team at Google and later donated to the CNCF.
Kubernetes eases the burden of configuring, deploying, managing, and monitoring even the largest-scale containerized applications.(In 1000s)
It also helps IT pros manage container lifecycles and related application lifecycles, and issues including high availability and load balancing.
How do Kubernetes work?
- There are two aspects to Kubernetes: the worker nodes and the control plane. The worker nodes are where the actual containerized applications exist. The control plane is where the tools for managing this cluster lives.
- Master plane components:
- Api-server: Collection of APIs. All communication flows through this component.It brokers the interaction between the control plane, the worker nodes, and the administrators as they apply configuration changes via the Kubernetes command line tools (like kubectl) or other UI.
- Etcd: Distributed persistent storage for cluster state and configuration.
- Controller manager: Controller of controllers like: Node controller, namespace controller etc.
- Scheduler : The scheduler is responsible for identifying the node that pods will run on. The scheduler interacts with the API server in performing its work.
- Worker node components:
- Kubelet: Tracks the state of a pod to ensure that all the containers are running. Registers node with cluster & does pod instantiation.
- Kube-proxy: K8 networking , Pod IP address. Containers in the pod share the same IP. Its responsible for enforcing network rules on the node and allowing for traffic to and from the node.
- Docker Daemon : Container runtime.
What are pods?
Smallest deployable unit. Wrapper outside containers
They are an abstraction that wraps one or multiple containerized applications. Pods provide a way to logically group and isolate containers that run together. Pods have a single IP address that is applied to every container within the pod. Containers in a pod share the same resources such as memory and storage.