gke-cost-optimization
GKE Cost Optimization
This skill provides guidance on optimizing costs for Google Kubernetes Engine (GKE) clusters.
Overview
Cost optimization in GKE involves tracking costs, setting limits to prevent waste, and rightsizing workloads to match actual usage.
Workflows
1. Enable GKE Cost Allocation
GKE cost allocation allows you to see the cost of your GKE resources in Cloud Billing, broken down by namespace and cluster labels.
Steps:
- Enable GKE cost allocation in the cluster settings.
Command:
gcloud container clusters update <cluster-name> \
--enable-cost-allocation \
--region <region>
- View costs in the Cloud Billing reports by grouping by namespace or labels.
2. Configure Resource Quotas
Resource quotas restrict the total resource consumption in a namespace, preventing any single tenant from consuming all cluster resources.
Example ResourceQuota Manifest:
apiVersion: v1
kind: ResourceQuota
metadata:
name: compute-quota
namespace: my-namespace
spec:
hard:
requests.cpu: "4"
requests.memory: 16Gi
limits.cpu: "8"
limits.memory: 32Gi
3. Rightsizing Strategies
Rightsizing involves adjusting the requested resources of your workloads to match their actual utilization.
- Use VPA in Recommender Mode: Let VPA observe usage and recommend CPU and memory requests.
- Use MPA: Reconcile HPA and VPA to avoid conflicts.
- Review Cost Recommendations: Check the Google Cloud Console for GKE cost optimization recommendations.
Best Practices
- Enable Cost Allocation: Always enable GKE cost allocation to understand where your money is going.
- Use Resource Quotas: Enforce resource quotas in multi-tenant clusters to prevent cost runaways.
- Leverage Spot VMs: Use Spot VMs for fault-tolerant, stateless workloads to save up to 91%.
- Automate Scaling: Use Cluster Autoscaler and HPA/VPA to ensure you only pay for what you need.
More from googlecloudplatform/gke-mcp
gke-backup-dr
Workflows for configuring Backup for GKE and disaster recovery.
2gke-reliability
Workflows for ensuring high availability and reliability of GKE workloads.
2gke-storage
Guidance on managing storage in Google Kubernetes Engine (GKE) clusters.
2gke-app-onboarding
Workflows for containerizing and deploying applications to GKE for the first time.
2gke-workload-security
Workflows for auditing and hardening the security of GKE workloads.
2gke-networking-edge
Workflows for configuring edge networking, ingress, and security on GKE.
2