What is Kubernetes?
Kubernetes is the container orchestration engine.
What is container orchestration?
In these times, if you try to manage complex microservices based architecture via containers. Then you need handle following scenarios:
- Start/stop containers of specific microservices when load is increasing.
- Check if all hosts are healthy, and if any host on which you are running docker containers is down, you have to bring it up or start a new host.
- Deploy the containers.
- If any container/s goes down, you have to bring it up.
- Provide load balancer for few services.
- Service discovery.
- Setup proper networking rules.
Container orchestration includes all above functions and much more.
What features Kubernetes provides as Container Orchestration Engine?
It helps in:
Uses/Features of Kubernetes:
- Managing Cluster:
- Kubernetes helps to manage the cluster, as in
- It takes care of the healing container if it goes down or healing all containers if the complete server on which containers are hosted goes down.
- Scale containers (Increasing or decreasing containers based on load)
- Scaling Worker Nodes (Increasing or decreasing cluster nodes if the load is increasing and there are no more hosts available to start the cluster on)
- Load Balancing of Services
- In case an app is running on multiple containers, Kubernetes take care of distributing incoming requests on multiple containers.
- Replication of containers
- Maintain the number of container instances required
- Consider you want to run a specific containerized app on host which have SSD attached to it and better IOPS speed. With Kubernetes you can specify these requirement in configuration file and submit the deployment request, rest Kubernetes will take care of. This is also called as scheduling.
- Manage deployment of containers
- Canary Deployment
- Blue Green Deployment
- Rolling Update Deployment
- Recreate Deployment
- Kubernetes helps to isolate independent containers
- Helps to connect coupled containers
- Helps to provide access to containers from external clients.
- Service Discovery:
- Kubernetes allow containers to discover other containers and establish connections to them.
Does Kubernetes work with only docker?
It can work with different containers, not just Docker.
How docker-engine takes care of clustering and scalability?
Docker Engine in itself can’t take care of clustering or scalability.
It depends on docker swarm, Apache or Kubernetes to help in this department.
What are other Container Orchestration Engines present in market?
Few of other famous are:
- Apache Mesos
- Apache Mesos
- Amazon ECS
- Azure Container Service (ACS)
What K8s means?
K8s is an abbreviation for kubernetes, derived by replacing the 8 letters “ubernete” with “8