Table of Contents
Cloud containers provide high availability, scalability, and flexible architecture for ‘microservices’ where multiple components of an application such as user sign in, inventory management, billing , shipping etc. are broken down into smaller modules.
Today we look more in detail about Google cloud Kubernetes Engine which is used to deploy (or orchestrator for container environment), know about its components, its features etc.
What is Google Kubernetes Engine?
Kubernetes provides a managed ready to production environment to deploy, manage and scale containerized applications. It is an open-source orchestrator for container environment. It helps to define how many machines to use, how many containers to deploy, how to scale containers, where persistent disks will reside and deployment of a group of containers as a single unit.
Google Kubernetes engine (GKE) provides a balance between control of Google compute engine (GCE) and fully managed service of Google App Engine. When Google Kubernetes Engine (GKE) is used to set up cluster it also gives advanced cluster management features which Google Platform provides.
Features of GKE:
- Leveraging CI/CD tools in Google cloud platform to build and serve application containers
- Store and serve container using Google container registry
- Google compute engine instances load balancing
- Additional flexibility by designating subnet nodes under node pools
- Auto scaling for cluster node instance count
- Auto upgrade of cluster node software
- Cluster visibility by logging and monitoring (Formally known as Stackdriver)
Cluster Architecture
- Cluster Master – Cluster master runs Kubernetes control plane processes. The lifecycle of the cluster is managed by Google Kubernetes engine when cluster is created until it is deleted.
- Cluster Master and Kubernetes API – unified point of cluster is managing your cluster including all interactions with cluster using Kubernetes API calls and master is responsible for running Kubernetes API server processes to handle the requests.
- Master and node interaction – Cluster master decides what will run on worker nodes. Such as workload scheduling, containerized applications and managing workloads lifecycle , scaling and upgrades.
How does Google Kubernetes Engine work?
Cluster forms the basis of Google Kubernetes engine. The Kubernetes objects represent containerized applications running within the cluster. A cluster comprises at least one cluster master and nodes also referred as worker machines, which run containerized applications and other workloads. The worker nodes are Google compute engine (GCE) instances which Google Kubernetes creates while you create a cluster.
The master and worker machines run the Kubernetes cluster orchestration system. The cluster master node runs the Kubernetes control plan processes, which includes Kubernetes API server, scheduler, and core resource controllers. The API server process is the hub of all communication within the cluster. All internal cluster processes (Cluster nodes, systems and its components, application controllers) act as client of API server.
The API Server acts as a centralized source of truth for entire cluster.
Key Features of Kubernetes Engine
- Kubernetes Applications – provide the solution with prebuilt deployment templates having portability, simple licensing, and consolidated billing. Google cloud marketplace increase developer productivity having not just container images but also open source, Google built and commercial applications
- Pod and Cluster Autoscaling – reduction in development cost and time with pre-built integrations to the cloud services
- Workload and Network security – Sandbox of Kubernetes provide a second layer of defence between container workloads , native clusters support Kubernetes network policy for traffic restriction with Pod level firewall rules.
- Identity and Access management – control access in cluster with Google account role permissions
- Hybrid Networking – reserve and IP address range for cluster , allow cluster Ips to coexist with Private network IP’s using Google cloud VPN.
- Security and Compliance – Google Kubernetes at backend has Google security team of 750+ professionals both for HIPPA and PCI DSS compliance
- Integrated logging and Monitoring – Cloud logging and cloud monitoring are enabled with a friendly interface having simple checkbox configurations which give insight into how your application is behaving.
Kubernetes Use Cases
- Running applications at scale – use to define complex containerized applications and run them at scale across cluster of servers
- Seamless movement of servers – movement of containerized applications from local deployment to production deployments on cloud
- Run anywhere – To run highly available and scalable Kubernetes cluster on AWS with parallelly maintaining Kubernetes on premises deployments
- Adding new functionality – open-source project allows addition of new functionality into Kubernetes.