REST Resource: projects.instances.clusters

Resource: Cluster

A resizable group of nodes in a particular cloud location, capable of serving all Tables in the parent Instance.

JSON representation
{
  "name": string,
  "location": string,
  "state": enum (State),
  "serveNodes": integer,
  "nodeScalingFactor": enum (NodeScalingFactor),
  "defaultStorageType": enum (StorageType),
  "encryptionConfig": {
    object (EncryptionConfig)
  },

  // Union field config can be only one of the following:
  "clusterConfig": {
    object (ClusterConfig)
  }
  // End of list of possible types for union field config.
}
Fields
name

string

The unique name of the cluster. Values are of the form projects/{project}/instances/{instance}/clusters/[a-z][-a-z0-9]*.

location

string

Immutable. The location where this cluster's nodes and storage reside. For best performance, clients should be located as close as possible to this cluster. Currently only zones are supported, so values should be of the form projects/{project}/locations/{zone}.

state

enum (State)

Output only. The current state of the cluster.

serveNodes

integer

The number of nodes in the cluster. If no value is set, Cloud Bigtable automatically allocates nodes based on your data footprint and optimized for 50% storage utilization.

nodeScalingFactor

enum (NodeScalingFactor)

Immutable. The node scaling factor of this cluster.

defaultStorageType

enum (StorageType)

Immutable. The type of storage used by this cluster to serve its parent instance's tables, unless explicitly overridden.

encryptionConfig

object (EncryptionConfig)

Immutable. The encryption configuration for CMEK-protected clusters.

Union field config.

config can be only one of the following:

clusterConfig

object (ClusterConfig)

Configuration for this cluster.

State

Possible states of a cluster.

Enums
STATE_NOT_KNOWN The state of the cluster could not be determined.
READY The cluster has been successfully created and is ready to serve requests.
CREATING The cluster is currently being created, and may be destroyed if the creation process encounters an error. A cluster may not be able to serve requests while being created.
RESIZING The cluster is currently being resized, and may revert to its previous node count if the process encounters an error. A cluster is still capable of serving requests while being resized, but may exhibit performance as if its number of allocated nodes is between the starting and requested states.
DISABLED The cluster has no backing nodes. The data (tables) still exist, but no operations can be performed on the cluster.

NodeScalingFactor

Possible node scaling factors of the clusters. Node scaling delivers better latency and more throughput by removing node boundaries.

Enums
NODE_SCALING_FACTOR_UNSPECIFIED No node scaling specified. Defaults to NODE_SCALING_FACTOR_1X.
NODE_SCALING_FACTOR_1X The cluster is running with a scaling factor of 1.
NODE_SCALING_FACTOR_2X The cluster is running with a scaling factor of 2. All node count values must be in increments of 2 with this scaling factor enabled, otherwise an INVALID_ARGUMENT error will be returned.

ClusterConfig

Configuration for a cluster.

JSON representation
{
  "clusterAutoscalingConfig": {
    object (ClusterAutoscalingConfig)
  }
}
Fields
clusterAutoscalingConfig

object (ClusterAutoscalingConfig)

Autoscaling configuration for this cluster.

ClusterAutoscalingConfig

Autoscaling config for a cluster.

JSON representation
{
  "autoscalingLimits": {
    object (AutoscalingLimits)
  },
  "autoscalingTargets": {
    object (AutoscalingTargets)
  }
}
Fields
autoscalingLimits

object (AutoscalingLimits)

Required. Autoscaling limits for this cluster.

autoscalingTargets

object (AutoscalingTargets)

Required. Autoscaling targets for this cluster.

AutoscalingLimits

Limits for the number of nodes a Cluster can autoscale up/down to.

JSON representation
{
  "minServeNodes": integer,
  "maxServeNodes": integer
}
Fields
minServeNodes

integer

Required. Minimum number of nodes to scale down to.

maxServeNodes

integer

Required. Maximum number of nodes to scale up to.

AutoscalingTargets

The Autoscaling targets for a Cluster. These determine the recommended nodes.

JSON representation
{
  "cpuUtilizationPercent": integer,
  "storageUtilizationGibPerNode": integer
}
Fields
cpuUtilizationPercent

integer

The cpu utilization that the Autoscaler should be trying to achieve. This number is on a scale from 0 (no utilization) to 100 (total utilization), and is limited between 10 and 80, otherwise it will return INVALID_ARGUMENT error.

storageUtilizationGibPerNode

integer

The storage utilization that the Autoscaler should be trying to achieve. This number is limited between 2560 (2.5TiB) and 5120 (5TiB) for a SSD cluster and between 8192 (8TiB) and 16384 (16TiB) for an HDD cluster, otherwise it will return INVALID_ARGUMENT error. If this value is set to 0, it will be treated as if it were set to the default value: 2560 for SSD, 8192 for HDD.

StorageType

Storage media types for persisting Bigtable data.

Enums
STORAGE_TYPE_UNSPECIFIED The user did not specify a storage type.
SSD Flash (SSD) storage should be used.
HDD Magnetic drive (HDD) storage should be used.

EncryptionConfig

Cloud Key Management Service (Cloud KMS) settings for a CMEK-protected cluster.

JSON representation
{
  "kmsKeyName": string
}
Fields
kmsKeyName

string

Describes the Cloud KMS encryption key that will be used to protect the destination Bigtable cluster. The requirements for this key are: 1) The Cloud Bigtable service account associated with the project that contains this cluster must be granted the cloudkms.cryptoKeyEncrypterDecrypter role on the CMEK key. 2) Only regional keys can be used and the region of the CMEK key must match the region of the cluster. Values are of the form projects/{project}/locations/{location}/keyRings/{keyring}/cryptoKeys/{key}

Methods

create

Creates a cluster within an instance.

delete

Deletes a cluster from an instance.

get

Gets information about a cluster.

list

Lists information about clusters in an instance.

partialUpdateCluster

Partially updates a cluster within a project.

update

Updates a cluster within an instance.