Loading...
Loading...
Sets up and configures Google Kubernetes Engine (GKE) clusters for production use. Use when creating new GKE clusters, choosing between Autopilot vs Standard modes, configuring networking (VPC-native, private clusters), setting up node pools, or planning cluster architecture for Spring Boot microservices. Includes regional vs zonal decisions, security hardening, and resource provisioning guidance.
npx skill4agent add dawiddutoit/custom-claude gcp-gke-cluster-setup# GKE Autopilot (Recommended for most use cases)
gcloud container clusters create-auto CLUSTER_NAME \
--region=europe-west2 \
--enable-ip-alias
# GKE Standard (if you need node control)
gcloud container clusters create CLUSTER_NAME \
--region=europe-west2 \
--enable-ip-alias \
--machine-type=n2-standard-4 \
--num-nodes=3# 99.95% SLA for control plane
# Control plane and nodes distributed across multiple zones
gcloud container clusters create-auto CLUSTER_NAME \
--region=europe-west2 # Distributes across a, b, c zones# 99.5% SLA, single point of failure
# Use only for non-critical environments
gcloud container clusters create-auto CLUSTER_NAME \
--zone=europe-west2-agcloud container clusters create-auto CLUSTER_NAME \
--region=europe-west2 \
--network=wtr-vpc \
--subnetwork=wtr-cluster-subnet \
--enable-ip-alias \
--cluster-secondary-range-name=pods \
--services-secondary-range-name=services10.0.0.0/2410.1.0.0/1610.2.0.0/20gcloud container clusters create-auto CLUSTER_NAME \
--region=europe-west2 \
--enable-private-nodes \
--enable-private-endpoint \
--master-ipv4-cidr=172.16.0.0/28 \
--enable-master-authorized-networks \
--master-authorized-networks=203.0.113.0/24# Production workloads
gcloud container node-pools create production-pool \
--cluster=CLUSTER_NAME \
--region=europe-west2 \
--machine-type=n2-standard-4 \
--num-nodes=3 \
--enable-autoscaling \
--min-nodes=2 \
--max-nodes=10
# Batch/non-critical workloads (optional)
gcloud container node-pools create batch-pool \
--cluster=CLUSTER_NAME \
--region=europe-west2 \
--machine-type=n2-standard-2 \
--spot # Up to 91% cheapergcloud container clusters update CLUSTER_NAME \
--region=europe-west2 \
--logging=SYSTEM,WORKLOAD \
--monitoring=SYSTEM,WORKLOAD \
--enable-cloud-logging \
--enable-cloud-monitoring \
--enable-managed-prometheus# Get kubectl credentials
gcloud container clusters get-credentials CLUSTER_NAME \
--region=europe-west2 \
--project=PROJECT_ID
# Verify cluster access
kubectl cluster-info
kubectl get nodes#!/bin/bash
# Create production-ready Autopilot cluster for Supplier Charges Hub
CLUSTER_NAME="supplier-charges-production"
REGION="europe-west2"
PROJECT_ID="ecp-wtr-supplier-charges-prod"
NETWORK="wtr-vpc"
SUBNET="wtr-prod-subnet"
gcloud container clusters create-auto $CLUSTER_NAME \
--region=$REGION \
--project=$PROJECT_ID \
--network=$NETWORK \
--subnetwork=$SUBNET \
--enable-ip-alias \
--cluster-secondary-range-name=pods \
--services-secondary-range-name=services \
--enable-private-nodes \
--enable-private-endpoint \
--master-ipv4-cidr=172.16.0.0/28 \
--enable-master-authorized-networks \
--master-authorized-networks=203.0.113.0/24 \
--logging=SYSTEM,WORKLOAD \
--monitoring=SYSTEM,WORKLOAD \
--release-channel=regular \
--enable-managed-prometheus
# Get credentials
gcloud container clusters get-credentials $CLUSTER_NAME \
--region=$REGION \
--project=$PROJECT_ID
# Verify
kubectl cluster-info# Quick dev/test cluster (lower cost, single zone)
gcloud container clusters create-auto dev-cluster \
--zone=europe-west2-a \
--project=ecp-wtr-supplier-charges-labs# Create Standard cluster
gcloud container clusters create managed-cluster \
--region=europe-west2 \
--machine-type=n2-standard-4 \
--num-nodes=3 \
--enable-autoscaling \
--min-nodes=2 \
--max-nodes=10 \
--enable-ip-alias \
--network=wtr-vpc \
--subnetwork=wtr-cluster-subnet
# Add specialized batch node pool
gcloud container node-pools create batch-pool \
--cluster=managed-cluster \
--region=europe-west2 \
--machine-type=n2-highmem-8 \
--spot \
--enable-autoscaling \
--min-nodes=0 \
--max-nodes=20gcloudgcloud services enable container.googleapis.comroles/container.adminroles/container.clusterManager