CLI & Tool Reference for GKE
Tool Preference
Default preference order:
When to use each
| Interface |
When to Use |
Examples |
| GKE MCP Tools |
Default for all cluster and K8s operations when MCP server is available. Structured I/O, supports dry-run, no shell/kubeconfig needed. |
create_cluster, get_cluster, get_k8s_resource, apply_k8s_manifest, get_k8s_logs |
gcloud CLI |
No MCP equivalent, or user explicitly requested CLI. Required for: GIQ model discovery, available K8s versions, maintenance windows, monitoring components, IAM/SA setup, Cloud Logging queries. |
gcloud container ai profiles, gcloud container get-server-config, gcloud iam service-accounts |
kubectl |
Neither MCP nor gcloud covers the operation, or user explicitly prefers kubectl. Required for: kubectl top, kubectl scale, kubectl exec, kubectl port-forward, Helm, custom CRDs not in MCP. |
kubectl top pods, kubectl scale deployment, helm install |
User preference override
If the user states a preference, respect it for the session:
- "Use gcloud" / "Use CLI" →
gcloud for cluster ops, kubectl for K8s resource ops. Skip MCP.
- "Use kubectl" →
kubectl for all K8s resource ops, gcloud for cluster-level ops. Skip MCP.
- "Use MCP" / no preference → Default. Use MCP for everything it supports.
Even with an override, fall back through the chain for unsupported operations (e.g., cluster creation always requires gcloud or MCP).
All MCP tools use hierarchical resource paths — see parent format at the bottom.
Cluster Operations
| Operation |
MCP Tool |
CLI Fallback |
Mode |
| List clusters |
list_clusters |
gcloud container clusters list |
READ |
| Get cluster details |
get_cluster |
gcloud container clusters describe |
READ |
| Create cluster |
create_cluster |
gcloud container clusters create-auto |
MUTATE |
| Update cluster |
update_cluster |
gcloud container clusters update |
DESTRUCTIVE |
| Get K8s versions |
— |
gcloud container get-server-config |
READ |
| Get credentials |
— |
gcloud container clusters get-credentials |
READ |
| Delete cluster |
— |
gcloud container clusters delete |
DESTRUCTIVE |
Node Pool Operations
| Operation |
MCP Tool |
CLI Fallback |
Mode |
| List node pools |
list_node_pools |
gcloud container node-pools list |
READ |
| Get node pool |
get_node_pool |
gcloud container node-pools describe |
READ |
| Create node pool |
create_node_pool |
gcloud container node-pools create |
MUTATE |
| Update node pool |
update_node_pool |
gcloud container node-pools update |
DESTRUCTIVE |
Cluster Updates
| Operation |
MCP Tool |
CLI Fallback |
Mode |
| Update cluster settings |
update_cluster |
gcloud container clusters update |
DESTRUCTIVE |
| Update monitoring |
— |
gcloud container clusters update --monitoring=... |
DESTRUCTIVE |
| Set maintenance window |
— |
gcloud container clusters update --maintenance-window-* |
DESTRUCTIVE |
Kubernetes Resource Operations
| Operation |
MCP Tool |
CLI Fallback |
Mode |
| Get/list resources |
get_k8s_resource |
kubectl get |
READ |
| Describe resource |
describe_k8s_resource |
kubectl describe |
READ |
| Apply manifest |
apply_k8s_manifest |
kubectl apply |
DESTRUCTIVE |
| Patch resource |
patch_k8s_resource |
kubectl patch |
DESTRUCTIVE |
| Delete resource |
delete_k8s_resource |
kubectl delete |
DESTRUCTIVE |
| List API resources |
list_k8s_api_resources |
kubectl api-resources |
READ |
| Check auth |
check_k8s_auth |
kubectl auth can-i |
READ |
Diagnostics & Observability
| Operation |
MCP Tool |
CLI Fallback |
Mode |
| List events |
list_k8s_events |
kubectl events |
READ |
| Get container logs |
get_k8s_logs |
kubectl logs |
READ |
| Cluster info |
get_k8s_cluster_info |
kubectl cluster-info |
READ |
| K8s version |
get_k8s_version |
kubectl version |
READ |
| Rollout status |
get_k8s_rollout_status |
kubectl rollout status |
READ |
| Query Cloud Logging |
— |
gcloud logging read |
READ |
Operations Tracking
| Operation |
MCP Tool |
CLI Fallback |
Mode |
| List operations |
list_operations |
gcloud container operations list |
READ |
| Get operation |
get_operation |
gcloud container operations describe |
READ |
| Cancel operation |
cancel_operation |
gcloud container operations cancel |
DESTRUCTIVE |
AI/ML Inference (GIQ) — CLI-Only
kubectl-Only Operations
No MCP or gcloud equivalent:
parent / name Format Quick Reference
Use locations/- to match all regions/zones when listing.
Error Handling
| Error / Symptom |
Likely Cause |
Remediation |
PERMISSION_DENIED on cluster create |
Missing container.clusters.create IAM role |
Grant roles/container.admin or roles/container.clusterAdmin |
| Quota exceeded |
Regional vCPU, GPU, or IP address limits |
Request quota increase or select a different region |
| IP exhaustion / CIDR conflict |
Pod subnet too small or overlapping ranges |
Re-plan IP ranges; may require cluster recreation (Day-0) |
| Workload Identity not working |
Missing OIDC issuer or federated credential |
Verify workloadIdentityConfig.workloadPool; configure federated identity binding |
| Private cluster unreachable |
No authorized networks or DNS endpoint |
Enable dnsEndpointConfig.allowExternalTraffic or add authorized networks |
| Secret Manager rotation failing |
SA missing secretmanager.versions.access |
Grant Secret Manager accessor role to workload's GSA |
| Control-plane metrics missing |
Monitoring components not configured |
Enable APISERVER, SCHEDULER, CONTROLLER_MANAGER in monitoringConfig |