Kubernetes is an Orchestration tool for containerized workloads and services. It is more flexible and supports container runtime environments like Docker, containerd, rkt etc. Kubernetes was open sourced by google in 2014 and now has a very large community actively contributing to its advancements. K8s is a production ready tool for hosting very large number of containerized applications and services in hundreds and thousands of nodes cluster. All the components and services in the cluster are securely communicating using the public key Infrastructure(PKI).
Kubernetes is also represented as K8s.
Kubernetes is capable of doing
- Service discovery and load balancing.
- Storage Orchestration.
- Automated rollouts and rollbacks.
- Automatic bin packing.
- Secret and configmap management.
Am calling Kubernetes follows Master-Worker architecture for hosting the cluster instead of Master-slave one. It’s highly recommended to separate the Control Plane components (Master) and Worker nodes in production setup. If you are setting up cluster for internal or testing purpose, you can try out the kubeadm way, which is very quick and simple.
Below are the list of components together forms the working Kubernetes cluster.
Control Plane components
- Kube-api server
- Kube controller manager
- Kube scheduler
- Container Runtime Interface (CRI)