---
id: "google-distributed-cloud-vmware"
type: "component"
kind: "container-orchestrator"
provider: "gcp"
category: "compute"
aliases: "Anthos clusters on VMware, GKE on-prem"
docs: "https://docs.cloud.google.com/kubernetes-engine/distributed-cloud/vmware/docs/overview"
url: "https://localhost:3000/catalogue/components/google-distributed-cloud-vmware"
---

# Google Distributed Cloud (software only) for VMware

GKE clusters on your own VMware vSphere hardware, registered to a Google Cloud fleet.

| | |
|---|---|
| Provider | [gcp](https://localhost:3000/catalogue?provider=gcp) |
| Kind | [Container orchestrator](https://localhost:3000/catalogue/kinds/container-orchestrator) |
| Category | Compute |
| Official docs | [https://docs.cloud.google.com/kubernetes-engine/distributed-cloud/vmware/docs/overview](https://docs.cloud.google.com/kubernetes-engine/distributed-cloud/vmware/docs/overview) |
| Also known as | Anthos clusters on VMware, GKE on-prem |

## Properties

| property | type | values | required | kind default | this component |
|---|---|---|---|---|---|
| `adminClusterRequired` | boolean | — | no | true | inherited |
| `autoscaling` | boolean | — | no | false | **false** |
| `customerSuppliedHardware` | boolean | — | no | true | inherited |
| `fleetRegistration` | boolean | — | no | true | inherited |
| `hypervisor` | string | — | no | "vmware-vsphere" | inherited |
| `managed` | boolean | — | no | false | **false** |
| `networkPolicy` | boolean | — | no | — | inherited |
| `nodeCount` | integer | — | no | — | inherited |
| `privateControlPlane` | boolean | — | no | — | **true** |
| `rbac` | boolean | — | no | — | inherited |
| `version` | string | — | no | — | inherited |

Bold values are the ones this component pins.

## Rules that apply · 1

### Stateful node without zone redundancy `stateful-node-without-zone-redundancy` (error)

- Page: https://localhost:3000/catalogue/rules/stateful-node-without-zone-redundancy.md
- Why: A stateful compute node pinned to exactly one availability zone disappears with that zone, and its state goes with it. Nodes inside a cell are exempt, because there the cell is deliberately single-zone and redundancy comes from the other cells.
- Applies to: every node in category compute
- Message: Stateful node '{{node.id}}' lives in exactly one availability zone. A zone outage takes its state with it.

It fires when:

- all of these hold:
  - the node's `stateless` is false
  - the node sits inside exactly 1 availability-zone group
  - this does not hold:
    - the node sits inside at least one cell group

## Other products of the same kind · 35

- [Container Service for Kubernetes](https://localhost:3000/catalogue/components/alibaba-ack.md) `alibaba-ack` — alibabacloud
- [Amazon Elastic Container Service](https://localhost:3000/catalogue/components/aws-ecs.md) `aws-ecs` — aws
- [Amazon Elastic Kubernetes Service](https://localhost:3000/catalogue/components/aws-eks.md) `aws-eks` — aws
- [Red Hat OpenShift Service on AWS](https://localhost:3000/catalogue/components/aws-rosa.md) `aws-rosa` — aws
- [Azure Kubernetes Service](https://localhost:3000/catalogue/components/azure-aks.md) `azure-aks` — azure
- [Azure Kubernetes Fleet Manager](https://localhost:3000/catalogue/components/azure-kubernetes-fleet-manager.md) `azure-kubernetes-fleet-manager` — azure
- [Azure Red Hat OpenShift](https://localhost:3000/catalogue/components/azure-red-hat-openshift.md) `azure-red-hat-openshift` — azure
- [Azure Service Fabric](https://localhost:3000/catalogue/components/azure-service-fabric.md) `azure-service-fabric` — azure
- [Cloudflare Containers](https://localhost:3000/catalogue/components/cloudflare-containers.md) `cloudflare-containers` — cloudflare
- [Generic container orchestrator](https://localhost:3000/catalogue/components/container-orchestrator.md) `container-orchestrator` — default
- [CoreWeave](https://localhost:3000/catalogue/components/coreweave.md) `coreweave` — default
- [Docker Swarm](https://localhost:3000/catalogue/components/docker-swarm.md) `docker-swarm` — default
- [k0s](https://localhost:3000/catalogue/components/k0s.md) `k0s` — default
- [K3s](https://localhost:3000/catalogue/components/k3s.md) `k3s` — default
- [Karmada](https://localhost:3000/catalogue/components/karmada.md) `karmada` — default
- [Kubernetes](https://localhost:3000/catalogue/components/kubernetes.md) `kubernetes` — default
- [MicroK8s](https://localhost:3000/catalogue/components/microk8s.md) `microk8s` — default
- [HashiCorp Nomad](https://localhost:3000/catalogue/components/nomad.md) `nomad` — default
- [Red Hat OpenShift](https://localhost:3000/catalogue/components/openshift.md) `openshift` — default
- [Rancher](https://localhost:3000/catalogue/components/rancher.md) `rancher` — default
- [DigitalOcean Kubernetes](https://localhost:3000/catalogue/components/digitalocean-kubernetes.md) `digitalocean-kubernetes` — digitalocean
- [Google Distributed Cloud (software only) for bare metal](https://localhost:3000/catalogue/components/google-distributed-cloud-bare-metal.md) `google-distributed-cloud-bare-metal` — gcp
- [Google Kubernetes Engine](https://localhost:3000/catalogue/components/google-gke.md) `google-gke` — gcp
- [GKE Autopilot](https://localhost:3000/catalogue/components/google-gke-autopilot.md) `google-gke-autopilot` — gcp
- [GKE Enterprise fleet](https://localhost:3000/catalogue/components/google-gke-enterprise.md) `google-gke-enterprise` — gcp
- [GKE Multi-Cloud](https://localhost:3000/catalogue/components/google-gke-multi-cloud.md) `google-gke-multi-cloud` — gcp
- [Cluster Services for OpenShift](https://localhost:3000/catalogue/components/google-openshift-cluster-services.md) `google-openshift-cluster-services` — gcp
- [IBM Cloud Kubernetes Service](https://localhost:3000/catalogue/components/ibm-kubernetes-service.md) `ibm-kubernetes-service` — ibm
- [Red Hat OpenShift on IBM Cloud](https://localhost:3000/catalogue/components/ibm-openshift.md) `ibm-openshift` — ibm
- [IBM Cloud Satellite](https://localhost:3000/catalogue/components/ibm-satellite.md) `ibm-satellite` — ibm
- [OCI Kubernetes Engine](https://localhost:3000/catalogue/components/oci-kubernetes-engine.md) `oci-kubernetes-engine` — oci
- [OKE Virtual Node Pool](https://localhost:3000/catalogue/components/oci-oke-virtual-node-pool.md) `oci-oke-virtual-node-pool` — oci
- [OpenStack Magnum](https://localhost:3000/catalogue/components/openstack-magnum.md) `openstack-magnum` — openstack
- [OpenStack Zun](https://localhost:3000/catalogue/components/openstack-zun.md) `openstack-zun` — openstack
- [OUTSCALE Kubernetes as a Service](https://localhost:3000/catalogue/components/outscale-oks.md) `outscale-oks` — outscale

## Use it in a design

```yaml
nodes:
  - { id: "google-distributed-cloud-vmware", component: "google-distributed-cloud-vmware" }
```

## Source (`component` YAML, verbatim)

```yaml
# yaml-language-server: $schema=../../schema/component.schema.json
# Google Distributed Cloud (software only) for VMware ("Google Distributed Cloud (software only) for
# VMware overview"): GKE clusters on your own VMware vSphere hardware. An admin cluster manages the
# user clusters, all control plane nodes run in your vSphere environment, every cluster is a fleet
# member through the Connect Agent, and node pool autoscaling is enabled as a separate step.
schemaVersion: "1"
type: "component"
id: "google-distributed-cloud-vmware"
kind: "container-orchestrator"
provider: "gcp"
docs: "https://docs.cloud.google.com/kubernetes-engine/distributed-cloud/vmware/docs/overview"
aliases: ["Anthos clusters on VMware", "GKE on-prem"]
defaults:
  privateControlPlane: true
  autoscaling: false
  managed: false
properties:
  hypervisor:
    type: "string"
    default: "vmware-vsphere"
  adminClusterRequired:
    type: "boolean"
    default: true
  fleetRegistration:
    type: "boolean"
    default: true
  customerSuppliedHardware:
    type: "boolean"
    default: true
```

Human page: https://localhost:3000/catalogue/components/google-distributed-cloud-vmware
