🤖 Service Accounts
A veces una aplicación dentro del clúster necesita comunicarse con el propio Kubernetes, por ejemplo, para listar otros pods. La Service Account es la "credencial" de la aplicación: es la identidad que el pod usa para presentarse al clúster. Para dar acceso a personas, vea Users.
Todo namespace ya viene con una Service Account llamada default.
Las Service Accounts se crean con kubectl. El Panel Nuvion no tiene una pantalla para este recurso.
🚀 Antes de comenzar
- Tener el acceso al clúster configurado (vea Acceso al Clúster).
🚀 1. Listar las Service Accounts
kubectl get serviceaccounts
Verá al menos la default.
🚀 2. Crear una Service Account
kubectl create serviceaccount app-sa
Salida esperada: serviceaccount/app-sa created
🚀 3. Verificar
kubectl describe serviceaccount app-sa
🚀 4. Usar la Service Account en un pod
Cree el archivo pod-sa.yaml:
apiVersion: v1
kind: Pod
metadata:
name: pod-sa
spec:
serviceAccountName: app-sa
containers:
- name: app
image: busybox
command: ["sh", "-c", "sleep 3600"]
kubectl apply -f pod-sa.yaml
kubectl exec pod-sa -- ls /var/run/secrets/kubernetes.io/serviceaccount
Salida esperada: ca.crt namespace token. Estos archivos son la identidad del
pod, entregados automáticamente por Kubernetes.
🚀 5. Generar un token (para uso fuera del clúster)
kubectl create token app-sa --duration=1h
El comando muestra un token temporal, válido por 1 hora.
El token es una credencial. No comparta ni publique este valor.
✅ Cómo saber si funcionó
El ls del paso 4 muestra los tres archivos, y el paso 5 devuelve un texto largo
(el token).
🔒 Buenas prácticas
- Cree una Service Account por aplicación, en lugar de usar la
defaultpara todo. - Una Service Account nueva no tiene permisos. Dé solo lo necesario, usando Roles y RBAC.
- Si la aplicación no necesita comunicarse con el clúster, desactive el token agregando
automountServiceAccountToken: falseen la secciónspecdel pod.
❗ Problemas comunes
| Síntoma | Causa | Solución |
|---|---|---|
El pod no se crea y cita serviceaccount not found | Nombre de la Service Account incorrecto o en otro namespace | Verifique con kubectl get serviceaccounts |
Forbidden al usar el token | La Service Account aún no tiene permisos | Siga las páginas Roles y RBAC |
unknown command "token" | kubectl antiguo | Actualice kubectl (versión 1.24 o superior) |
🧹 Limpieza
kubectl delete pod pod-sa
kubectl delete serviceaccount app-sa
➡️ Próximo paso: Roles
🧠 ¿Dudas?
¡Hable con nuestro equipo de soporte técnico de SaveinCloud!