Desplegar Karpenter en Google Cloud

Proveedor de Karpenter para Google Cloud Platform en vista previa: despliegue con Helm en GKE, credenciales seguras, GCENodeClass y NodePool, y autoscaling inteligente de cargas de trabajo.

jueves, 4 de septiembre de 2025 • 3 min de lectura • Equipo Q2BSTUDIO

Inteligencia-Artificial-

El proveedor de Karpenter para Google Cloud Platform ya está disponible en vista previa y habilita el autoscaling inteligente de cargas de trabajo de Kubernetes en GCP. Desarrollado por el equipo de CloudPilot AI en colaboración con la comunidad, este lanzamiento amplía las capacidades multicloud de Karpenter.

Importante Esta es una versión en vista previa, completamente funcional para pruebas y experimentación, pero no recomendada aún para entornos de producción.

En este tutorial aprenderás a desplegar el proveedor de GCP con Helm, preparar credenciales, y configurar Karpenter para lanzar instancias de GCE de forma dinámica según las necesidades de tus workloads.

Prerrequisitos

- Un clúster de GKE en ejecución con el controlador de Karpenter instalado siguiendo la guía oficial de instalación

- kubectl configurado contra tu clúster de GKE

- helm v3 o superior

- CRDs de Karpenter ya instaladas en el clúster

- Permisos en GCP para crear instancias, subredes y discos para el controlador de Karpenter y el proveedor de GCP

Preparar credenciales de GCP

Habilita APIs necesarias

gcloud services enable compute.googleapis.com gcloud services enable container.googleapis.com

Crea una cuenta de servicio y asigna roles

export PROJECT_ID=TU_PROJECT_ID gcloud iam service-accounts create karpenter-gcp --project=${PROJECT_ID} export SA_EMAIL=karpenter-gcp@${PROJECT_ID}.iam.gserviceaccount.com gcloud projects add-iam-policy-binding ${PROJECT_ID} --member=serviceAccount:${SA_EMAIL} --role=roles/compute.admin gcloud projects add-iam-policy-binding ${PROJECT_ID} --member=serviceAccount:${SA_EMAIL} --role=roles/container.admin gcloud projects add-iam-policy-binding ${PROJECT_ID} --member=serviceAccount:${SA_EMAIL} --role=roles/monitoring.admin gcloud projects add-iam-policy-binding ${PROJECT_ID} --member=serviceAccount:${SA_EMAIL} --role=roles/iam.serviceAccountUser

Genera la clave de la cuenta de servicio y guárdala de forma segura

gcloud iam service-accounts keys create key.json --iam-account=${SA_EMAIL} --project=${PROJECT_ID}

Crea el Secret en Kubernetes con la clave

kubectl create namespace karpenter-system kubectl create secret generic karpenter-gcp-credentials -n karpenter-system --from-file=key.json=./key.json

Instalar el chart del proveedor de GCP

Exporta variables necesarias

export CLUSTER_NAME=TU_CLUSTER_NAME export REGION=TU_REGION export DEFAULT_NODEPOOL_SERVICE_ACCOUNT=${SA_EMAIL}

Instala o actualiza con Helm

helm upgrade karpenter charts/karpenter --install --namespace karpenter-system --create-namespace --set controller.settings.projectID=${PROJECT_ID} --set controller.settings.region=${REGION} --set controller.settings.clusterName=${CLUSTER_NAME} --wait

Probar la creación de nodos

1. Crea los recursos NodeClass y NodePool

Crea dos manifiestos locales llamados nodeclass.yaml y nodepool.yaml con la configuración deseada de GCENodeClass y NodePool. Asegúrate de referenciar la cuenta de servicio que creaste y de seleccionar una imagen válida como ContainerOptimizedOS@latest, etiquetas y zonas disponibles en tu región. Puedes basarte en los ejemplos del repositorio oficial en Karpenter GCP provider.

Aplica los manifiestos

kubectl apply -f nodeclass.yaml kubectl apply -f nodepool.yaml

2. Genera una carga de trabajo que dispare el escalado

Puedes crear rápidamente un deployment ligero que demande CPU y memoria

kubectl create deployment inflate --image=public.ecr.aws/eks-distro/kubernetes/pause:3.2 --replicas=1 kubectl set resources deployment inflate --requests=cpu=250m,memory=250Mi --limits=cpu=250m,memory=250Mi

Verifica que Karpenter aprovisiona nodos

kubectl get nodes kubectl get nodeclaim

Los nodos creados por Karpenter suelen incluir la etiqueta karpenter.sh/provisioner-name y las taints o labels definidas en tu NodeClass y NodePool. Ajusta requisitos como capacidad on-demand o spot, familias de instancia, arquitectura y zonas para optimizar costes y tiempos de arranque.

Buenas prácticas y notas

- Esta versión es de vista previa, utiliza proyectos y clústeres de prueba

- Aplica el principio de privilegio mínimo en los roles de la cuenta de servicio

- Asegura el secreto con la clave y rota credenciales periódicamente

- Supervisa métricas de scheduling, latencia de arranque y costos

Cómo puede ayudarte Q2BSTUDIO

En Q2BSTUDIO aceleramos la adopción de autoscaling inteligente con Kubernetes y Karpenter, optimizando tus cargas en GCP, AWS y Azure. Somos especialistas en aplicaciones a medida y software a medida, con un enfoque integral en inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio y power bi, automatización de procesos, ia para empresas y agentes IA. Si buscas diseñar una arquitectura multicloud eficiente, contáctanos para implementar mejores prácticas de coste, fiabilidad y seguridad. Descubre nuestros servicios cloud en AWS y Azure y cómo potenciamos tus soluciones con inteligencia artificial para empresas.

Conclusión

Con el proveedor de GCP para Karpenter ya puedes probar autoscaling flexible y rápido en GKE. Prepara tus credenciales, instala el chart, define un GCENodeClass y un NodePool acordes a tu región y tipos de instancia, y valida el aprovisionamiento con una carga mínima. Tu feedback a la comunidad será clave para llevar el escalado multicloud de Karpenter al siguiente nivel.

NUESTROS SERVICIOS

Cómo podemos ayudarte

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.