Google Kubernetes Engine


What is GKE?

GKE is a managed, production-ready environment for deploying containerized applications. It is like a managed cargo container in shipping. 

datacloudies gke
Photo by Andy Li 

What is a container?

A container is a lightweight, standalone, and executable package that simply encapsulates everything of what is needed to run the show. This includes the code, runtime, system dependencies, libraries, and configuration settings. 
Container lies Docker, which is an open platform that allows us to build and deploy distributed applications. Docker runs on the top of the host machine, which means that each individual container does not relate to the host. Whereas, the VMs lies hypervisor, which sits on the host machine and interacts with underlying hardware infrastructure. 

What is Kubernetes?

Kubernetes is a container orchestration platform, which manages the docker container.  If you decide to choose down the container way of approach for the application, then GKE provides better feasibility than other options. (GCE, GAE).
Kubernetes for automating deployment, scaling, and management of containerized applications that were designed by Google and donated to the Cloud Native Computing Foundation. 

Benefits of Kubernetes

  • Deploy your applications quickly.
  • Scale your applications on the fly.
  • Limit the hardware usage 
  • Roll out new features seamlessly
  • Run applications across different environments and cloud providers.

Benefits of GKE

  • Fully managed environment for deploying containerized applications.
  • Self-recovering by using replication and automated repair.
  • Auto-scaling as per the demand
  • Container optimized OS – pre-configured docker runtime and all Kubernetes components are installed already.
  • No vendor lock-in as Kubernetes is an open-source platform.

Kubernetes terms

Let us see a couple of terminologies defined in Kubernetes.
Master – controls the Kubernetes nodes. 
Node – instances that perform the tasks, which are controlled by the master node. 
Pod – a group of one or more containers in a node.  Pod shares a single IP address, hostname, and other resources, which allows easy shipment.
Replication controller – this component ensures a specific number of pod replicas are running at a time. 
Kubectl – a tool that helps to interact with Kubernetes. 
Services – logical set of pods across the nodes, which uses the single IP address and port number act as a frontend client for the backend pods. 
Container registry – a separate service for storing the docker images for the deployments. We can push/pull the images to this registry to deploy for GKE and GCE. 
This picture will make you understand the responsibility of each component in the Kubernetes environment.  
kubernetes datacloudies
Well, that is it. I hope this would be informative for you to get the basics of Kubernetes.
Please do follow the next tutorial to see how to deploy the application to the container engine. 




Recent Posts