This topic shows you how to create a standard zonal cluster with the default features enabled in Google Kubernetes Engine (GKE). Zonal clusters have a single control plane in a single zone. Depending on your availability requirements, you can choose to distribute your nodes for your zonal cluster in a single zone or in multiple zones.
To learn about the different cluster availability types, see About cluster configuration choices.
Single-zone versus multi-zonal
A single-zone cluster has a single control plane running in one zone. This control plane manages workloads on nodes running in the same zone.
A multi-zonal cluster's nodes run in multiple zones, but it has only a single replica of the control plane. If you need higher availability for the control plane, consider creating a regional cluster instead. In a regional cluster, the control plane is replicated across multiple zones in a region.
Before you begin
Before you start, make sure you have performed the following tasks:
- Enable the Google Kubernetes Engine API. Enable Google Kubernetes Engine API
- If you want to use the Google Cloud CLI for this task, install and then initialize the gcloud CLI.
- Multi-zonal clusters use more resources than single-zone clusters. If you are creating a multi-zonal cluster, ensure you have adequate quotas.
- Ensure you have the correct permission to create clusters. At minimum, you should be a Kubernetes Engine Cluster Admin.
Create a zonal cluster
You can create a zonal cluster by using the gcloud CLI or the Google Cloud console.
If you're developing GKE applications with Visual Studio Code, try creating clusters with Cloud Code.
gcloud
To create a zonal cluster with the gcloud CLI, use one of the following commands.
Replace the following:
CLUSTER_NAME
: the name of your new cluster.CHANNEL
: the type of release channel, which can be one ofrapid
,regular
,stable
, orNone
. By default, the cluster is enrolled in theregular
release channel if the following flags aren't specified:--cluster-version
,--release-channel
,--no-enable-autoupgrade
, and--no-enable-autorepair
.COMPUTE_ZONE
: the compute zone for the cluster control plane.VERSION
: the version you wish to specify for your cluster.COMPUTE_ZONE,COMPUTE_ZONE1,[...]
: the zones in which nodes are created. You can specify as many zones as needed for your cluster. All zones must be in the same region as the cluster's control plane, specified by the--zone
flag. For zonal clusters,--node-locations
must contain the cluster's primary zone.
In the following commands, you can optionally use the
--service-account=SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com
flag to specify a different IAM service account that nodes
in your cluster's first node pool uses instead of the Compute Engine
default service account. This flag is optional, but we strongly recommend
that you create and use a minimally-privileged service account
so that your nodes don't have more privileges that they require.
Using a specific release channel:
To create a new cluster using a specific release channel, run the following command:
gcloud container clusters create CLUSTER_NAME \ --release-channel CHANNEL \ --zone COMPUTE_ZONE \ --node-locations COMPUTE_ZONE,COMPUTE_ZONE1
Using a specific version:
To create a new cluster using a specific cluster version, run the following command:
gcloud container clusters create CLUSTER_NAME \ --cluster-version VERSION \ --zone COMPUTE_ZONE \ --node-locations COMPUTE_ZONE,COMPUTE_ZONE1
Using the static default version:
To create a new cluster using the static default cluster version, you don't
need to specify a cluster version, but you do need to set the release
channel to None
:
gcloud container clusters create CLUSTER_NAME \ --release-channel None \ --zone COMPUTE_ZONE \ --node-locations COMPUTE_ZONE,COMPUTE_ZONE1
Example
The following command creates a multi-zonal cluster named example-cluster
,
where the cluster control plane is located in the us-central-a
zone, and
there are three node locations. The cluster is enrolled in the regular
release channel.
When the --num-nodes
flag is omitted, the default number of per-zone nodes created by the cluster
is three. Because three zones were specified, this command creates a
nine-node cluster with three nodes each in us-central1-a
, us-central1-b
,
and us-central1-c
.
gcloud container clusters create example-cluster \ --zone us-central1-a \ --node-locations us-central1-a,us-central1-b,us-central1-c
Console
To create a zonal cluster with the Google Cloud console, perform the following tasks:
Go to the Google Kubernetes Engine page in the Google Cloud console.
Click add_box Create.
In the Cluster basics section, complete the following:
- Enter the Name for your cluster.
- For the Location type, select Zonal, and then select the desired zone for your cluster.
- If you are creating a multi-zonal cluster, select the Specify default node locations checkbox, and then choose additional zones in which you'd like the node pools to run.
Choose a Control plane version. Defaults to the recommended option of Release channel. If you must specify a static version, ensure auto-upgrade is enabled for your node pools.
From the navigation pane, under Node Pools, click default-pool.
In the Node pool details section, complete the following:
- Enter a Name for the default Node pool.
- For static version nodes, choose the Node version.
- Enter the Number of nodes to create in the cluster. You must have available resource quota for the nodes and their resources (such as firewall routes).
From the navigation pane, under Node Pools, click Nodes.
From the Image type drop-down list, select the desired node image.
Choose the default Machine configuration to use for the instances. Each machine type is billed differently. The default machine type is
e2-medium
. For machine type pricing information, refer to the machine type price sheet.From the Boot disk type drop-down list, select the desired disk type.
Enter the Boot disk size.
Optional: From the navigation pane, under Node Pools, click Security.
Optional: From the Service account drop-down list, select an Identity and Access Management (IAM) service account for your applications to use when calling Google Cloud APIs. We recommend that you use a minimally privileged service account instead of using the default service account, so that your nodes don't have more privileges that they require.
Click Create.
Interact with a cluster using kubectl
After you create a cluster, you need to
configure kubectl
before you can interact with the cluster from the command line.
Cluster templates
GKE previously supported templates for clusters. Those templates were removed from the Google Cloud console, but are still accessible from the following links:
What's next
- Learn about cluster configuration choices you can create.
- Learn about the GKE cluster architecture.
- Learn about managing your clusters.
- Learn how to delete clusters.
Try it for yourself
If you're new to Google Cloud, create an account to evaluate how GKE performs in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
Try GKE free