API Organization and Structure

The programmatic interface to your Kubernetes Engine cluster has two principal APIs: The Kubernetes Engine API (and the associated gcloud command-line interface) and the Kubernetes API (and the associated kubectl command-line interface).

Kubernetes Engine API

You use the Kubernetes Engine API and gcloud command-line interface primarily for configuring your cluster on Google Cloud Platform. This might include tasks such as:

  • Creating a cluster
  • Deleting a cluster
  • Configuring cluster-level networking, such as rotating the cluster master IP or enabling network policy enforcement
  • Updating the version of Kubernetes running on the cluster
  • Adding, removing, or modifying node pools in your cluster
  • Setting the machine type or node image used for your cluster's nodes
  • Configuring the geographic zones or regions in which your cluster runs

To learn how to use Kubernetes Engine beta features through the API, refer to Kubernetes Engine Beta Features and API Surface.

Kubernetes API

You use the Kubernetes API and kubectl command-line interface for managing your cluster's containerized applications and workloads. This might include tasks such as:

  • Deploying an application
  • Scaling an application
  • Configuring intra-cluster networking settings
  • Configuring Pods and Containers
  • Controlling when pods are evicted or restarted

Kubernetes API Versioning

Kubernetes supports multiple API versions, each at a different API path such as /api/v1 or /apis/extensions/v1beta1. You must specify the API version when writing object configuration files or when interacting with the API directly.

The API is versioned separately from Kubernetes itself. For more information on API versioning, refer to the Kubernetes API versioning documentation.

Kubernetes Engine Beta Features and API Surface

As of 24 October 2017, the Kubernetes Engine API has created a new Beta API surface for using Beta features in Kubernetes Engine.

When new features for Kubernetes Engine are released to Beta, they are made available through the v1beta1 API and gcloud beta commands in the gcloud command-line tool. Before you can use a beta feature in Kubernetes Engine, you must configure the gcloud command-line tool to use the v1beta1 API for gcloud beta container commands.

To configure the gcloud command-line tool to use the v1beta API, run one of the following commands in your shell or terminal window:

export CLOUDSDK_CONTAINER_USE_V1_API_CLIENT=false

or:

gcloud config set container/use_v1_api false

As features "graduate" from Beta to General Availability, the commands move from the v1beta1 API to the v1 API (and the gcloud beta container group to the gcloud container group in the command-line interface). The commands might undergo small changes to format during this transition. Any breaking changes are only made after a deprecation warning and must maintain a three month period of backward compatibility.

Was this page helpful? Let us know how we did:

Send feedback about...

Kubernetes Engine