Note that this repository is under improvement, and it is just insights to know what Kubernetes is.
- Container run time.
- Manages the execution of containers via the Container Runtime Interface (CRI).
- Examples: containerd, cri-o.
- Node Agent "Kubelet".
- An agent running on each worker node communicates with the control plane components from the master node.
- Listens for Pod specifications from the API server.
- Ensures the specified containers are running and healthy.
- Reports back to the control plane about the node's status.
- Proxy "kube-proxy".
- Maintains network rules on each node.
- Addons "DNS, Dashboard User Interface, Monitoring and logging".
- Cluster features and functionality not yet available in Kubernetes, therefore implemented with third-party pods and services.
- kube-api-server
- Exposes a secure and extensible RESTful interface, validates and processes requests, manages authentication and authorization, and interacts with
etcd
to maintain the desired state of the cluster.
- Exposes a secure and extensible RESTful interface, validates and processes requests, manages authentication and authorization, and interacts with
- kube-scheduler
- Assigns Pods to worker nodes based on resource availability and other constraints.
- kube-Controller-Manager
- Ensures that the current state of the cluster matches the desired state.
- Cloud Controller Manager
- Links the cluster to any cloud provider's APIs
- etcd
- etcd is a distributed, reliable key-value store for the most critical data in a distributed systems.
- It is used to persist the state of a Kubernetes cluster.
- Only the
API server
is able to communicate with the etcd data store via:etcdctl
: is a command-line tool for interacting with the etcd distributed key-value store.