google/gke-cluster-creation
>- Plans and executes GKE cluster creation, provisioning, and production readiness audits using pre-defined templates (Autopilot, Standard Regional, GPU/AI Inference, AI Hypercompute). Use when creating GKE clusters, provisioning GKE environments, selecting cluster modes, or auditing GKE clusters. Don't use for application onboarding or deployment configuration (use gke-app-onboarding instead).
npx skills add https://github.com/google/skills --skill gke-cluster-creation
This reference guides creating Google Kubernetes Engine (GKE) clusters by
providing a set of best-practice templates and guiding through mode selection
and customization. The golden path Autopilot configuration is the default
for all new clusters.
> MCP Tools: list_clusters, create_cluster, get_cluster,
> list_operations, get_operation
list_clusters to see existing clusters. Usegcloud config get-value project if project unknown.
project_id, location (region or zone),cluster_name, environment type. If missing essential details, ask the user
before taking action.
template or mode, present the available templates (e.g., Autopilot, Standard
Regional, GPU Inference, AI Hypercompute) and explain key trade-offs (Cost
vs. Availability, Autopilot vs. Standard node management).
(gcloud command or create_cluster JSON payload) and confirm with the
user before creation.
create_cluster tool or gcloud CLI.get_operation to monitor creation progress.get_cluster with readMask="*" to confirm golden pathsettings applied.
| Criteria | Autopilot (Golden Path) | Standard |
| ------------------ | ------------------------- | ------------------------- |
| Node management | Google-managed | Self-managed |
| Pricing | Pay per pod resource | Pay per node (VM) |
: : request : :
| Node customization | Via ComputeClasses | Full control |
| DaemonSets | Allowed (with | Full control |
: : restrictions) : :
| GPU/TPU | Supported via | Supported via node pools |
: : ComputeClasses : :
| Best for | Most production workloads | Kernel tuning, custom OS, |
: : : privileged workloads :
> Rule: Default to Autopilot unless the customer has a specific requirement
> that Autopilot cannot satisfy.
When guiding the user or generating configurations, adhere to these GKE best
practices:
true`) with a private control plane and restricted public endpoints
(enable-master-authorized-networks) to minimize attack surface.
useIpAliases: true /--enable-ip-alias) to enable alias IP ranges and pod-level firewall rules.
<PROJECT_ID>.svc.id.goog`) for securely granting GKE workloads access to
Google Cloud services instead of static service account keys.
(--enable-shielded-nodes, --enable-secure-boot) against rootkits and
bootkits.
limits (scoped-rbs-bindings).
Autoscaler (--enable-autoscaling, --enable-vertical-pod-autoscaling) to
adjust resources based on demand.
counts. Consider Spot VMs (--spot) for fault-tolerant, non-critical batch
or inference workloads.
ensure control plane replication across multiple zones (--region instead
of --zone). *Note: Standard regional creates nodes across 3 zones by
default.*
application stability during node maintenance.
REGULAR or STABLE)for automated, safer cluster upgrades.
This is the default. All settings match
../gke-golden-path/assets/golden-path-autopilot.yaml.
Via gcloud:
gcloud container clusters create-auto <CLUSTER_NAME> \
--region <REGION> \
--project <PROJECT_ID> \
--release-channel regular \
--enable-private-nodes \
--enable-master-authorized-networks \
--enable-dns-access \
--enable-secret-manager \
--secret-manager-rotation-interval=120s \
--scoped-rbs-bindings \
--monitoring=SYSTEM,API_SERVER,SCHEDULER,CONTROLLER_MANAGER,STORAGE,POD,DEPLOYMENT,STATEFULSET,DAEMONSET,HPA,CADVISOR,KUBELET,DCGM \
--quiet
Via MCP (create_cluster):
{
"parent": "projects/<PROJECT_ID>/locations/<REGION>",
"cluster": {
"name": "<CLUSTER_NAME>",
"autopilot": { "enabled": true },
"privateClusterConfig": { "enablePrivateNodes": true },
"masterAuthorizedNetworksConfig": {
"privateEndpointEnforcementEnabled": true
},
"releaseChannel": { "channel": "REGULAR" },
"secretManagerConfig": {
"enabled": true,
"rotationConfig": { "enabled": true, "rotationInterval": "120s" }
},
"rbacBindingConfig": {
"enableInsecureBindingSystemAuthenticated": false,
"enableInsecureBindingSystemUnauthenticated": false
}
}
}
Relaxes some golden path defaults for cost savings and easier access in
non-production.
Via gcloud:
gcloud container clusters create-auto <CLUSTER_NAME> \
--region <REGION> \
--project <PROJECT_ID> \
--release-channel rapid \
--quiet
Via MCP (create_cluster):
{
"parent": "projects/<PROJECT_ID>/locations/<REGION>",
"cluster": {
"name": "<CLUSTER_NAME>",
"autopilot": { "enabled": true },
"releaseChannel": { "channel": "RAPID" }
}
}
> Warning: This does not apply golden path security hardening. Suitable for
> dev/test only.
Best when Autopilot cannot be used (e.g., custom kernel tuning, specific node OS
requirements). Creates 3 nodes across zones by default.
Via gcloud:
gcloud container clusters create <CLUSTER_NAME> \
--region <REGION> \
--project <PROJECT_ID> \
--num-nodes 3 \
--machine-type e2-standard-4 \
--disk-type pd-balanced \
--enable-autoscaling --min-nodes 1 --max-nodes 10 \
--enable-shielded-nodes --enable-secure-boot \
--workload-pool=<PROJECT_ID>.svc.id.goog \
--enable-private-nodes \
--enable-master-authorized-networks \
--enable-vertical-pod-autoscaling \
--enable-dataplane-v2 \
--release-channel regular \
--quiet
Via MCP (create_cluster):
{
"parent": "projects/<PROJECT_ID>/locations/<REGION>",
"cluster": {
"name": "<CLUSTER_NAME>",
"initialNodeCount": 3,
"nodeConfig": {
"machineType": "e2-standard-4",
"diskType": "pd-balanced",
"diskSizeGb": 100,
"oauthScopes": ["https://www.googleapis.com/auth/cloud-platform"],
"shieldedInstanceConfig": {
"enableSecureBoot": true,
"enableIntegrityMonitoring": true
},
"workloadMetadataConfig": {
"mode": "GKE_METADATA"
}
},
"privateClusterConfig": { "enablePrivateNodes": true },
"releaseChannel": { "channel": "REGULAR" },
"workloadIdentityConfig": {
"workloadPool": "<PROJECT_ID>.svc.id.goog"
}
}
}
Best for: AI/ML Inference, small model serving. Can be provisioned via
Autopilot + ComputeClass or via Standard node pool with g2-standard-4
(nvidia-l4). *Note: Requires g2-standard-4 quota.*
Autopilot ComputeClass / GIQ approach:
# 1. Create golden path cluster (same as template 1)
gcloud container clusters create-auto <CLUSTER_NAME> \
--region <REGION> --project <PROJECT_ID> \
--enable-private-nodes --enable-master-authorized-networks \
--enable-dns-access --enable-secret-manager --scoped-rbs-bindings \
--quiet
# 2. Apply GPU ComputeClass (see gke-compute-classes.md)
kubectl apply -f gpu-compute-class.yaml
# 3. Or use GIQ for inference (see gke-inference.md)
gcloud container ai profiles manifests create \
--model=gemma-2-9b-it --model-server=vllm --accelerator-type=nvidia-l4 --quiet > inference.yaml
kubectl apply -f inference.yaml
Standard Node Pool approach via MCP (create_cluster):
{
"parent": "projects/<PROJECT_ID>/locations/<REGION>",
"cluster": {
"name": "<CLUSTER_NAME>",
"initialNodeCount": 1,
"nodeConfig": {
"machineType": "g2-standard-4",
"accelerators": [
{
"acceleratorCount": "1",
"acceleratorType": "nvidia-l4"
}
],
"diskSizeGb": 100,
"oauthScopes": ["https://www.googleapis.com/auth/cloud-platform"]
}
}
}
Best for: Large-scale LLM / AI model training and hypercompute inference. *Note:
High hourly cost and strict quota requirements (a3-highgpu-8g /
nvidia-h100-80gb-hbm3).*
Via gcloud:
gcloud container clusters create <CLUSTER_NAME> \
--region <REGION> \
--project <PROJECT_ID> \
--num-nodes 1 \
--machine-type a3-highgpu-8g \
--accelerator type=nvidia-h100-80gb-hbm3,count=8 \
--disk-size 200 \
--scopes https://www.googleapis.com/auth/cloud-platform \
--workload-pool=<PROJECT_ID>.svc.id.goog \
--release-channel regular \
--quiet
Via MCP (create_cluster):
{
"parent": "projects/<PROJECT_ID>/locations/<REGION>",
"cluster": {
"name": "<CLUSTER_NAME>",
"initialNodeCount": 1,
"nodeConfig": {
"machineType": "a3-highgpu-8g",
"accelerators": [
{
"acceleratorCount": "8",
"acceleratorType": "nvidia-h100-80gb-hbm3"
}
],
"diskSizeGb": 200,
"oauthScopes": ["https://www.googleapis.com/auth/cloud-platform"]
}
}
}
project_id if not in context.region (or location).cluster_name.has custom node/kernel/hypercompute requirements.
deviates from the golden path and explaining the added
operational/management overhead (manually managing node pools, upgrades, and
autoscaling).
if they haven't specified one (e.g., Autopilot vs Standard, Cost vs
Availability).
gcloud command or JSON payload) andask for confirmation before calling any creation tool.
change later.
GPU (g2-standard-4, a3-highgpu-8g), TPU, or multi-region/regional
clusters (--region defaults to 3 zones).
create_cluster, the cluster.name parameter should be theshort name (e.g., my-cluster), not the full resource path
(projects/<PROJECT_ID>/locations/<REGION>/clusters/<CLUSTER_NAME>). The
parent parameter defines the scope
(projects/<PROJECT_ID>/locations/<REGION>).
Take google/gke-cluster-creation from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.