Kubernetes
- Kubernetes is an open-source container management tool which automates container deployment, container scaling and load balancing.
- It schedules, runs and manages isolated containers which are running on virtual/ physical/ cloud machines.
- All top cloud providers support Kubernetes.
History:
- Google developed an internal system called 'Borg' (later named as omega) to deploy and manage thousands google application and services on their cluster.
- In 2014, google introduced Kubernetes as an open-source platform written in Golang, and later donated to CNCF (cloud Native Computing Foundation).
Features | Kubernetes | Docker Swarm |
Installation & Cluster Config | Setup is very complicated, but once installed cluster is robust. | Installation is very simple, but the cluster is not robust. |
GUI | GUI is the Kubernetes Dashboard. | There is no GUI. |
Scalability | Highly scalable and scales fast. | Highly scalable and scales 5x faster than Kubernetes. |
Auto-scaling | Kubernetes can do auto-scaling. | Docker swarm cannot do auto-scaling. |
Load Balancing | Manual intervention needed for load balancing traffic between different containers and pods. | Docker swarm does auto load balancing of traffic between containers in the cluster. |
Rolling Updates & Rollbacks | Can deploy rolling updates and does automatic rollbacks. | Can deploy rolling updates, but not automatic rollback. |
DATA Volumes | Can share storage volumes only with the other containers in the same pod. | Can share storage volumes with any other container. |
Logging & Monitoring | In-built tools for logging and monitoring. | 3rd party tools like ELK stack should be used for logging and monitoring. |
Architecture
Components of Control Plane (master):
- Kube-API server
- Etcd
- Kube-scheduler
- Controller manager
Comments
Post a Comment