Google Kubernetes Engine provides a managed environment for deploying, managing, and scaling your containerized applications using Google infrastructure. The environment GKE provides consists of multiple machines (specifically, Google Compute Engine instances) grouped together to form a cluster.
Cluster orchestration with GKE
GKE clusters are powered by the Kubernetes open source cluster management system. Kubernetes provides the mechanisms through which you interact with your cluster. You use Kubernetes commands and resources to deploy and manage your applications, perform administration tasks and set policies, and monitor the health of your deployed workloads.
Kubernetes draws on the same design principles that run popular Google services and provides the same benefits: automatic management, monitoring and liveness probes for application containers, automatic scaling, rolling updates, and more. When you run your applications on a cluster, you're using technology based on Google's 10+ years of experience running production workloads in containers.
Kubernetes on Google Cloud Platform
When you run a GKE cluster, you also gain the benefit of advanced cluster management features that Google Cloud Platform provides. These include:
- Google Cloud Platform's load-balancing for Compute Engine instances
- Node pools to designate subsets of nodes within a cluster for additional flexibility
- Automatic scaling of your cluster's node instance count
- Automatic upgrades for your cluster's node software
- Node auto-repair to maintain node health and availability
- Logging and Monitoring with Stackdriver for visibility into your cluster
Kubernetes versions and features
GKE cluster masters are automatically upgraded to run new versions of Kubernetes as those versions become stable, so you can take advantage of newer features from the open source Kubernetes project.
New features in Kubernetes are listed as Alpha, Beta, or Stable, depending upon their status in development. In most cases, Kubernetes features that are listed as Beta or Stable are included with GKE. Kubernetes Alpha features are available in special GKE alpha clusters.
GKE works with containerized applications: applications packaged into hardware independent, isolated user-space instances, for example by using Docker. In GKE and Kubernetes, these containers, whether for applications or batch jobs, are collectively called workloads. Before you deploy a workload on a GKE cluster, you must first package the workload into a container.
Google Cloud Platform provides continuous integration and continuous delivery tools to help you build and serve application containers. You can use Google Cloud Build to build container images (such as Docker) from a variety of source code repositories, and Google Container Registry to store and serve your container images.