Introducción
En la era del despliegue ágil y la escalabilidad automática, Kubernetes se ha consolidado como la plataforma de orquestación de contenedores de referencia. Kapsule es el servicio gestionado de Kubernetes de Scaleway que simplifica la creación, mantenimiento y escalado de clústeres. En esta guía detallada aprenderemos a desplegar un clúster Kapsule desde cero, cubriendo tanto los pasos técnicos como las mejores prácticas de operación y seguridad.
1. Requisitos previos
- Cuenta activa en Scaleway. Regístrate en Scaleway.
- Scaleway CLI instalado y configurado. Consulta la guía en Scaleway CLI.
- kubectl (cliente de Kubernetes) instalado. Descárgalo de Kubernetes.io.
- Conocimientos básicos de Linux y línea de comandos.
2. Configurar credenciales en Scaleway CLI
Para interactuar con la API de Scaleway, necesitas tus credenciales:
- Obtener token y secret key desde la consola de Scaleway (API credentials).
- Ejecutar en tu terminal:
scw login
y seguir los pasos interactivos para introducir tus credenciales.
3. Creación del clúster Kapsule
Con las credenciales listas, vamos a crear un clúster:
scw k8s cluster create my-kapsule-cluster --region fr-par --version 1.28.0 --node-pool name=pool1,size=DEV1-M,autoscale=true,min-nodes=1,max-nodes=3
Explicación de parámetros:
| Parámetro | Descripción |
|---|---|
| my-kapsule-cluster | Nombre identificador del clúster |
| –region fr-par | Región donde se desplegará |
| –version 1.28.0 | Versión de Kubernetes |
| –node-pool … | Configuración de la pool de nodos (tipo, escalado) |
La creación tomará varios minutos. Puedes verificar el estado con:
scw k8s cluster get my-kapsule-cluster
4. Configurar kubectl
Una vez el clúster esté listo, descarga las credenciales:
scw k8s cluster kubeconfig my-kapsule-cluster > kubeconfig.yaml
Exporta la variable de entorno:
export KUBECONFIG=(pwd)/kubeconfig.yaml
Verifica la conexión:
kubectl get nodes
5. Desplegar una aplicación de ejemplo
Probemos con NGINX:
kubectl create deployment nginx --image=nginx:latest
kubectl expose deployment nginx --port=80 --type=LoadBalancer
Consulta el servicio:
kubectl get svc nginx
Usa la external IP para acceder desde tu navegador. Este balanceador es gestionado por Scaleway.
6. Monitorización y registro
- Instala Prometheus y Grafana con Helm (Helm):
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo add grafana https://grafana.github.io/helm-charts
helm install prom prometheus-community/prometheus
helm install grafana grafana/grafana
- Accede a Grafana:
kubectl port-forward svc/grafana 3000:80y visita http://localhost:3000.
7. Escalado automático
Habilita el Horizontal Pod Autoscaler:
kubectl autoscale deployment nginx --cpu-percent=50 --min=2 --max=5
Para nodos, ya configuramos autoscaling en la pool al crear el clúster.
8. Seguridad y buenas prácticas
- Configura RBAC y usuarios con roles limitados.
- Implementa Network Policies para aislar pods.
- Usa image scanning y repositorios privados (Scaleway Object Storage).
- Gestiona certificados TLS con cert-manager y Ingress.
9. Backup y recuperación
Para proteger tus datos, considera Velero:
velero install --provider scaleway --bucket my-backups --secret-file ./credentials-velero
Programa snapshots regulares y verifica las restauraciones en un entorno de prueba.
Conclusión
Desplegar un clúster Kubernetes en Scaleway con Kapsule es un proceso sencillo pero poderoso. Esta guía ha cubierto desde la configuración inicial hasta prácticas avanzadas de monitorización, seguridad y recuperación. Con estos conocimientos, podrás optimizar tus aplicaciones containerizadas, reducir tiempos de despliegue y garantizar alta disponibilidad.
Para más información, consulta la documentación oficial de Kapsule y la documentación de Kubernetes.
Leave a Reply