What is Kubernetes?
Kubernetes (called as k8s) is one of the popular open-source container Orchestrator built by Google (It is based on Google internal system called Google Borg). Orchestration is a process of automatic configuration, coordination, and managing of computer systems and software.
Using Kubernetes, you can deploy and manage containerized applications. Kubernetes use Linux container technologies like Docker to provide isolation of running applications.
Why Kubernetes?
a. A typical application is divided into multiple microservice and each microservice will run on one or more containers.
b. One application may run on multiple docker containers and across multiple computing systems.
c. Frequent upgrades of application with multiple versions possible.
d. We may need to revert the changes and redeploy the applications if required.
e. Based on the demand we may need to scale up or scale down the containers.
f. How to establish communication between multiple containerized applications
g. How will you start a new container when one of the containers went down?
h. How to schedule the jobs that spin up containers automatically?
How can we address all the above points?
The Answer is Kubernetes. Kubernetes abstracts the hardware infrastructures. Nowadays, Kubernetes becomes the de-facto standard to deploy and manage distributed applications in both on-premise and Cloud.
Features of Container Orchestrator
a. Provision computing systems or hosts
b. Start a container in host
c. Restart failing containers
d. Establish communication link between containers.
e. Support Autoscaling. Scale up/down the containers based on need.
Following are the major advantage of Kubernetes.
a. It is open-source and highly used in the current market. Backed by a strong open source community. It is governed by the Cloud Native Computing Foundation (CNCF).
b. You can deploy and manage containers on a cluster of virtual machines, public cloud, and private data centers using Kubernetes.
c. Multi-host container scheduling.
d. Kubernetes features a backward compatible for fewer versions and all the APIs are versioned.
e. Multi-Region deployments are possible.
f. It is highly scalable. Kubernetes 1.8 support 5000 nodes clusters and 150000 pods. A node is a worker machine in Kubernetes, It can be a Virtual or Physical machine. A pod runs on a node. One node can have multiple pods.
g. New worker nodes can seamlessly register with Kubernetes master node to scale the environment.
h. Service discovery is available out of the box.
i. Kubernetes support Persistent storage. Pods can use this storage to store the data. Data stored in the persistent storage can be retained on pod restarts and failures.
j. Rolling updates are supported. Rolling updates make the deployment possible with zero downtime.
k. Application rollbacks are supported by Kubernetes.
l. Built-in monitoring and health check capability
m. Secrets are managed by mounting as data volumes or Environment variables.
Typical Application cycle is like, you develop an application and create a docker image and you use Kubernetes to deploy the docker images.
Other Orchestration Engines
Apart from Kubernetes, following are the most used Orchestration Engines.
a. Docker Swarm
b. MESOS
c. RANCHER
d. Amazon EC2 container service
e. Nomad
No comments:
Post a Comment