Stay organized with collections
Save and categorize content based on your preferences.
Google Distributed Cloud provides you a choice of tools to create clusters and
manage the cluster lifecycle operations (update, upgrade, and delete):
The command-line tool bmctl, which you run on your admin workstation
in your on-premises data center. You create a
configuration file
that describes the cluster network, load balancing, and other cluster
features. You specify this file on the command line to bmctl. You can
also run kubectl on your admin workstation to upgrade and update clusters
and to delete user clusters.
The Google Cloud console, Google Cloud CLI, or
Terraform,
which you can run from any computer that has network connectivity to the
GKE On-Prem API.
These standard tools use the GKE On-Prem API, which runs on Google Cloud
infrastructure. Collectively, the standard tools are referred to as the
GKE On-Prem API clients. To manage the lifecycle of your clusters, the
GKE On-Prem API must store metadata about your cluster's state in
Google Cloud, in the Google Cloud region that you specify when
creating the cluster. This metadata lets the API manage the cluster
lifecycle and doesn't include workload-specific data.
No matter which tool you use to create clusters, the information that
you gather and provide to the tool, such as the IP addresses
of cluster node machines and load balancer VIPs, is the same.
This selection lets you choose the best tool for your use case and
environment. For example:
For your first installations in a development environment, you might
want to use the console because the user interface provides
additional guidance and help.
If your organization already uses the gcloud CLI or Terraform to
manage other Google Cloud resources, you will probably want to use these
tools for Google Distributed Cloud as well.
If your organization has regulatory requirements or restrictions, you
might need to limit your reliance on Google Cloud and use bmctl on
your admin workstation to create clusters and manage cluster lifecycle.
The bmctl tool was shipped with the first release of Google Distributed Cloud,
and it is the most mature as far as features that it supports. We recommend that
you review the functionality for the GKE On-Prem API clients when making a
choice. The following list summarizes current limitations. Check this list from
time to time as the GKE On-Prem API clients evolve.
Admin and user clusters are the only supported cluster types
The latest minor or patch versions aren't available in the GKE On-Prem API
until 7 to 10 days after the release
The following advanced networking features aren't supported:
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Hard to understand","hardToUnderstand","thumb-down"],["Incorrect information or sample code","incorrectInformationOrSampleCode","thumb-down"],["Missing the information/samples I need","missingTheInformationSamplesINeed","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-09-04 UTC."],[],[],null,["Google Distributed Cloud provides you a choice of tools to create clusters and\nmanage the cluster lifecycle operations (update, upgrade, and delete):\n\n- The command-line tool `bmctl`, which you run on your admin workstation in your on-premises data center. You create a [configuration file](/kubernetes-engine/distributed-cloud/bare-metal/docs/reference/cluster-config-ref) that describes the cluster network, load balancing, and other cluster features. You specify this file on the command line to `bmctl`. You can also run `kubectl` on your admin workstation to upgrade and update clusters and to delete user clusters.\n- The Google Cloud console, Google Cloud CLI, or [Terraform](https://www.terraform.io), which you can run from any computer that has network connectivity to the [GKE On-Prem API](/anthos/clusters/docs/on-prem-api/reference/rest). These standard tools use the GKE On-Prem API, which runs on Google Cloud infrastructure. Collectively, the standard tools are referred to as the *GKE On-Prem API clients*. To manage the lifecycle of your clusters, the GKE On-Prem API must store metadata about your cluster's state in Google Cloud, in the Google Cloud region that you specify when creating the cluster. This metadata lets the API manage the cluster lifecycle and doesn't include workload-specific data.\n\nNo matter which tool you use to create clusters, the information that\nyou gather and provide to the tool, such as the IP addresses\nof cluster node machines and load balancer VIPs, is the same.\n\nThis selection lets you choose the best tool for your use case and\nenvironment. For example:\n\n- For your first installations in a development environment, you might want to use the console because the user interface provides additional guidance and help.\n- If your organization already uses the gcloud CLI or Terraform to manage other Google Cloud resources, you will probably want to use these tools for Google Distributed Cloud as well.\n- If your organization has regulatory requirements or restrictions, you might need to limit your reliance on Google Cloud and use `bmctl` on your admin workstation to create clusters and manage cluster lifecycle.\n\nIf you create a cluster with `bmctl`, you can\n[enroll the cluster with the GKE On-Prem API](/kubernetes-engine/distributed-cloud/bare-metal/docs/how-to/enroll-cluster)\nafter the cluster is created, which lets you also use the GKE On-Prem API\nclients.\n\nLimitations with the GKE On-Prem API clients\n\nThe `bmctl` tool was shipped with the first release of Google Distributed Cloud,\nand it is the most mature as far as features that it supports. We recommend that\nyou review the functionality for the GKE On-Prem API clients when making a\nchoice. The following list summarizes current limitations. Check this list from\ntime to time as the GKE On-Prem API clients evolve.\n\n- Admin and user clusters are the only supported cluster types\n\n- The latest minor or patch versions aren't available in the GKE On-Prem API\n until 7 to 10 days after the release\n\n- The following advanced networking features aren't supported:\n\n - [IPv4/IPv6 dual-stack networking](/kubernetes-engine/distributed-cloud/bare-metal/docs/how-to/dual-stack-networking)\n - [IPv4 flat mode network model](/kubernetes-engine/distributed-cloud/bare-metal/docs/how-to/flat-network)\n\nWhat's next\n\n- `bmctl`\n\n - [Cluster configuration field reference](/kubernetes-engine/distributed-cloud/bare-metal/docs/reference/cluster-config-ref#cluster_configuration_fields)\n- gcloud CLI\n\n - [`gcloud container bare-metal clusters`](/sdk/gcloud/reference/container/bare-metal/clusters)\n\n - [`gcloud container bare-metal node-pools`](/sdk/gcloud/reference/container/bare-metal/node-pools)\n\n - [`gcloud container bare-metal admin-clusters`](/sdk/gcloud/reference/container/bare-metal/admin-clusters)\n\n- Terraform\n\n - [`google_gkeonprem_bare_metal_cluster`](https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/gkeonprem_bare_metal_cluster)\n\n - [`google_gkeonprem_bare_metal_node_pool`](https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/gkeonprem_bare_metal_node_pool)\n\n - [`google_gkeonprem_bare_metal_admin_cluster`](https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/gkeonprem_bare_metal_admin_cluster)"]]